AJJ*_*AJJ 1 java arrays integer
我是一个相当新的java,我有一些代码不能正常工作,我不知道为什么所以任何帮助将不胜感激.
我试图从文本文件中读取整数并将它们存储在数组中.这是我的代码:
Scanner keyboard = new Scanner(System.in);
File file = new File ("Grades.txt");
FileReader input = new FileReader(file);
BufferedReader in = new BufferedReader(input);
int [] id = new int [500];
String s = in.readLine();
String s1 = s.substring(0,5);
while (s != null){
int i = 0;
id[i] = Integer.parseInt(s1);
System.out.println(id[i]);
s = in.readLine();
}
in.close();
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它只存储文本文件中的第一个整数,并显示以下行的相同整数.这是我的输出:
57363
57363
57363
57363
57363
57363
57363
Run Code Online (Sandbox Code Playgroud)
这里是我正在阅读的文本文件的布局:
57363 Joy Ryder D D C P H H C D
72992 Laura Norder H H H D D H H H
71258 Eileen Over C F C D C C C P
70541 Ben Dover F F F P C C C F
46485 Justin Time F C F C D P D H
61391 Anna Conda D D F D D F D D
88985 Bob Down P F P F P F P P
Run Code Online (Sandbox Code Playgroud)
你id[0]一遍又一遍地覆盖.您需要i在循环中增加索引变量.此外,s1永远不会更新.
int i = 0;
while (s != null){
id[i] = Integer.parseInt(s.substring(0, 5));
System.out.println(id[i]);
s = in.readLine();
i++;
}
Run Code Online (Sandbox Code Playgroud)
然而,解决这个问题的更好方法是使用Scanner:
Scanner s = new Scanner(new File("Grades.txt"));
int i = 0;
while (s.hasNextLine()) {
id[i] = s.nextInt();
System.out.println(id[i]);
// (The remaining fields could be read with s.next())
s.nextLine(); // skip rest of line
i++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |