Java 通过控制台/在运行时使用扫描仪修改2D数组值后出现空值

Java 通过控制台/在运行时使用扫描仪修改2D数组值后出现空值,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我正在学习Java,目前还没有很好地掌握代码。我有一个定义了所有值的2D字符串数组,希望给用户一个选项来更改数组中任意行和任意列的值 这是我的密码: 我已全局定义了我的数组,如下所示: static int option=0; static String[][] resultCard = new String[][]{ { "", "A", "B", "C", "D", "E"}, { "Account1", "1", "2","3","4","5"

我正在学习Java,目前还没有很好地掌握代码。我有一个定义了所有值的2D字符串数组,希望给用户一个选项来更改数组中任意行和任意列的值

这是我的密码: 我已全局定义了我的数组,如下所示:

static int option=0;
    static String[][] resultCard =  new String[][]{ 
        { "", "A", "B", "C", "D", "E"},
        { "Account1", "1", "2","3","4","5" }, 
        { "Account2", "6", "7", "8", "9", "10"}, 
        { "Account3", "11", "12", "13", "14", "15"},
        { "Account4", "16", "17", "18", "19", "20"},
        { "Account5", "21", "22", "23", "24", "25"}
    };
之后,我创建了一个方法,在该方法中,我试图检索第一行和最后一列的值,并希望更改这些值

public static void courseModify5(){
    int courseId=0;
    int row=0;
    int newMarks=0;
    int oldMarks=0;
    Scanner courseModify = new Scanner(System.in);
    for(row=1; row<resultCard.length;row++){
            System.out.printf("\t Enter "+ row + " for "+ resultCard[row][0]+"\n");
    }
    System.out.print("Select any course to modify the marks");
    courseId = courseModify.nextInt(); 
    while(courseId<=0 || courseId>6){
        System.out.println("Enter numbers between 1 to 6");
        courseId=courseModify.nextInt();
    }
    while(courseId>0 || courseId<=6){           
                if(courseId==1){
                    System.out.println("The Marks in "+ resultCard[1][0] +" for " + resultCard[0][5] + " are " + resultCard[1][5] );
                    resultCard[1][5]+=Integer.parseInt(resultCard[1][5]);
                    System.out.println("Enter new marks");
                    newMarks=courseModify.nextInt();
                    resultCard[1][5]=toString(newMarks);
                    System.out.println("New marks are: "+resultCard[1][5]); //please note that at the moment I am getting the output after changing the value as NULL
                    break;
                } 
                else if(courseId==2){
                    System.out.println("The Marks in "+ resultCard[2][0] +" for " + resultCard[0][5] + " are " + resultCard[2][5] );
                    resultCard[2][5]+=Integer.parseInt(resultCard[2][5]);
                    System.out.println("Enter new marks");
                    newMarks=courseModify.nextInt();
                    resultCard[2][5]=toString(newMarks);
                    System.out.println("New marks are: "+resultCard[2][5]);
                    break;
                } 
                else if(courseId==3){
                    System.out.println("The Marks in "+ resultCard[3][0] +" for " + resultCard[0][5] + " are " + resultCard[3][5] );
                    resultCard[3][5]+=Integer.parseInt(resultCard[3][5]);
                    System.out.println("Enter new marks");
                    newMarks=courseModify.nextInt();
                    resultCard[3][5]=toString(newMarks);
                    System.out.println("New marks are: "+resultCard[3][5]);
                    break;
                } 
        break;
    }

}
当我编译并更改数组值时,我得到的输出是空的,所以我有点被困在这里。此外,该值也不会存储在阵列中。任何帮助和指导都将不胜感激。
您好,

如果您只是想查看代码,您可以联系,而不是stackoverflow:。嗨,Tom,谢谢您的回复。我试图将例如第1行第5列中的值从5更改为55,并且得到的输出为NULL。我只是想知道我哪里做错了。我有一个字符串数组,用户输入是int,然后将其转换成字符串。我不知道为什么我没有得到用户输入的期望输出。Regardsm我的第一个猜测是courseModify.nextInt有问题。您正在此处读取一个int,但按Enter键时显示的换行符仍在扫描仪读取的输入流中,下一个nextInt将不会返回有效数字,因为\n无法转换为一个数字。尝试Integer.parseIntcourseModify.nextLIne读取您的数字,看看这是否解决了您的问题。使用调试器,我建议使用Netbeans,否则仅在源代码中传递字符位置太浪费了。顺便说一句,您不必枚举ifcourseId==1,只需使用变量:resultCard[courseId][5]+=…resultCard[1][5]+=。。。将附加一个字符串,如1+2生成12,而不是整数和!,因为您有一个字符串数组。更好的样式是创建一个类记录,第一个字段使用单独类型的字段字符串,其余字段使用整数。