好的,这将是一个列出学生姓名和考试成绩的计划。我知道这一切只是一件小事。我必须列出列出学生姓名的行...然后允许我将另一名学生添加到列表中而不重复完全相同的名称。 (见标有1和2的行)
第一行收集来自firstNameField和lastNameField的名称,教师将输入这些名称......第二行将为该数组“上升一个”,以确保在添加另一名学生时名称不会重复。
不幸的是......每次添加另一名学生时,它看起来都像这样... ...
示例:
Jane Doenull 65 76 45 89 Jane Doenull 65 87 45 76 John Smithnull 65 76 45 89
你可以清楚地看到问题....“null”在那里,加上重复第二个名字(Jane Doe)
那么我应该怎么做才能阻止这种情况呢?
公共类StudentGradesView扩展了FrameView {
int [][] aryStudent = new int [15][4]; //number of student (15) test scores (4 scores)
String[][] aryNames = new String[15][2]; //lists the names of students
int numOfStudents = 0; //starts off students from zero...
int marks = 0;
int test1;
int test2;
int test3;
int test4;
public StudentGradesView(SingleFrameApplication app) {
// GUI的东西......
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
String currentList = studentListField.getText();
//Collects integers from test1Field though test4Field
aryStudent[numOfStudents][0] = Integer.parseInt(test1Field.getText());
aryStudent[numOfStudents][1] = Integer.parseInt(test2Field.getText());
aryStudent[numOfStudents][2] = Integer.parseInt(test3Field.getText());
aryStudent[numOfStudents][3] = Integer.parseInt(test4Field.getText());
StringBuilder sb = new StringBuilder();
for (int x=0; x <= numOfStudents && x<15; x++) {
sb.append(firstNameField.getText()).append(" ").append(lastNameField.getText()); //(1)
sb.append(aryNames[x][0]); //(2)
for (int y=0; y < 4; y++) {
sb.append(" ").append(aryStudent[x][y]);
studentListField.setText(sb.toString() + "\n" + currentList);
}
sb.append("\n");
}
numOfStudents ++;
}
添加:所以它出现“sb.append(aryNames [x] [0]); //(2)”没什么重要的,没有它没有名称重复,除非输出为。 ..例子
Mary Jones 56 76 56 87 约翰史密斯45 45 45 45 约翰史密斯45 45 45 45
所以它重复了两次添加的第二个名字。
答案 0 :(得分:0)
您将数据放入aryNames的哪个位置?
您初始化它:
String[][] aryNames = new String[15][2]; //lists the names of students
然后你用它:
sb.append(aryNames[x][0]); //(2)
但它在哪里填充?这是你唯一一次参考它,它就在你追加这个名字之后。所以你得到了空
来自:
sb.append(firstNameField.getText()).append(" ").append(lastNameField.getText()); //(1)
但如果aryNames
从未放入任何数据,aryNames[x][0]
将为null,因此会附加空值。
所以我会检查你填充aryNames
数组的位置。