A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuelxiwd 中级黑马   /  2013-5-30 09:18  /  1627 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 liuelxiwd 于 2013-5-30 22:50 编辑



我想用一个二维数组既保存姓名又保存成绩,可以这样定义 String [][] arr = new String[5][4];共5行,保存5个人的信息,每一列的第一列为姓名,其余为成绩,请问关于接收键盘输入这个该怎么写,应该是Scanner和for循环,求助~~~~~~~~~~~~~

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
袁梦希 + 1 + 3 赞一个!

查看全部评分

6 个回复

正序浏览
思路:用HashMap的键值对更清晰一些,姓名是键,成绩是值,一次输入姓名和成绩,中间用个符号隔开,然后用字符串分割的方法将用符号隔开的两个分别,存入Map对象中!
回复 使用道具 举报
穆爱明 发表于 2013-5-30 11:00

谢谢!!!
回复 使用道具 举报
胡浩 发表于 2013-5-30 10:24
楼主,这样可以啦

谢谢!!!!
回复 使用道具 举报
  1. package com.test;

  2. import java.util.Scanner;//别忘了导包

  3. public class Test {

  4.         public static void main(String[] args) {
  5.                 /**
  6.                  * 存储数据
  7.                  */
  8.                 String[][] arr = new String[5][4];// 定义一个二维数组
  9.                 Scanner input = new Scanner(System.in);// 声明接收器
  10.                 for (int i = 0; i < arr.length; i++) {
  11.                         System.out.print("请输入第" + (i + 1) + "位的姓名和成绩:");// 提示用户输入成绩
  12.                         for (int j = 0; j < arr[i].length; j++) {// 利用循环接受每人的姓名和成绩
  13.                                 arr[i][j] = input.next();// 存储用户数据

  14.                         }
  15.                 }
  16.                 /**
  17.                  * 显示数据
  18.                  */
  19.                 for (int i = 0; i < arr.length; i++) {
  20.                         for (int j = 0; j < arr[i].length; j++) {
  21.                                 System.out.print(arr[i][j]+"\t");
  22.                         }
  23.                         System.out.println();//换行
  24.                 }

  25.         }
  26. }
  27. //控制台接收数据的时候光标要手动移到末尾!
复制代码
回复 使用道具 举报
  1. import java.util.*;
  2. public class 二维数组 {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 Scanner input=new Scanner(System.in);
  8.                 String [] [] arr=new String [5][4];
  9.                 for(int i=0;i<5;i++){
  10.                        
  11.                         System.out.println("请输入第"+(i+1)+"个人的姓名");
  12.                        
  13.                        
  14.        
  15.                         arr[i][0]=input.next();//姓名保存在第一列,所以横坐标都为0
  16.                         for(int j=1;j<4;j++){
  17.                                 System.out.println("请依次输入第"+(i+1)+"个人的成绩");
  18.                                 arr[i][j]=input.next();
  19.                         }
  20.                 }
  21.                 for(int i=0;i<5;i++){
  22.                         for(int j=0;j<4;j++){
  23.                                 System.out.println(arr[i][j]);
  24.                         }
  25.                 }
  26.         }

  27. }
复制代码
楼主,这样可以啦
回复 使用道具 举报
for(int i=0;i<5;i++){
   for(int j=0;j<4;j++){
       //输入成绩 依次存在 arr[i][j]中
   }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马