[英]Why does my Java program add only half a list of numbers in a file?
我试图读入数组的文件中的一行中有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()
给出剩余的数字令牌。 当您有18个令牌时,还剩下18个令牌,因此您可以停下来。 我建议您阅读说明以下模式的文档,而不是这样做
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
我建议使用String.split()
:
String[] lineNum;
int n;
while (line!=null)
{
lineNum = line.split(" ");
n = lineNum.length;
System.out.println("Total numbers : " + n);
for(int i = 0; i < n; i++)
{
avg += Double.parseDouble(lineNum[i]);
System.out.println("i: " + i);
}
count += n;
System.out.println(line);
line = br.readLine();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.