我在文件中的一行中有一个由空格分隔的 36 个数字列表,我正在尝试将其读入数组。我的程序读取整行,但仅添加 18 个数字。有人看到原因吗?
谢谢。
StringTokenizer st;
try{
BufferedReader br = new BufferedReader(
new FileReader("Scores.txt"));
String line = br.readLine();
double avg = 0.0;
double sum = 0.0;
int count = 0;
while (line!=null)
{
st = new StringTokenizer(line);
System.out.println("Total tokens : " + st.countTokens());
for(int i = 0; i < st.countTokens(); i++)
{
avg += Double.parseDouble(st.nextToken());
count++;
System.out.println("i: " + i);
}
System.out.println(line);
line = br.readLine();
}
br.close();
sum = avg;
System.out.println("Sum: " + sum);
System.out.println("Count: " + count);
avg = avg/count;
System.out.println("Avg: " + avg);
}catch(Exception e)
最佳答案
st.countTokens()
给出剩余的 token 数。当你有 18 个 token 时,还剩下 18 个 token ,所以你停下来。我建议您阅读建议以下模式的文档,而不是这样做
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
关于java - 为什么我的 Java 程序只在文件中添加一半的数字列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18580400/