【发布时间】:2017-08-29 09:24:36
【问题描述】:
我有一个问题,要求我从文件中读取标记并打印出三个值:数字标记的数量(双精度)、非数字标记的数量以及数字的总和.以及那些价值观。
我已经设法读取了文本文件,并且能够根据它们是否为双精度来将它们分开,但是我在构建我的输出时遇到了麻烦,目前它只是列表,除了非-doubles 在我的文本文件所在的位置列出:
1 2 3 one two three
z 1.1 zz 2.2 zzz 3.3 zzzz
我的代码看起来像:
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class Lab1 {
public static void main(String[] args) {
Scanner in = null;
try {
in = new Scanner(new File("data.txt"));
} catch (FileNotFoundException e) {
System.err.println("failed to open data.txt");
System.exit(1);
}
/**
* parse file token by token
*/
while (in.hasNext()) {
String token = in.next();
// if it's a Double
try {
double d = Double.parseDouble(token);
System.out.println(+d);
continue;
}
catch (NumberFormatException e) {
// It's not a double:
System.out.println("Not a double");
}
}
}
}
这是我的输出:
1.0
2.0
3.0
Not a double
Not a double
Not a double
Not a double
1.1
Not a double
2.2
Not a double
3.3
Not a double
当我希望我的输出是这样的:
6 7 12.6
分别对应双打数、非双打数和双打总和。
如果我的措辞有误,请原谅。只是想修复我的输出。
提前致谢!
【问题讨论】:
-
您能否澄清一下您遇到的阻碍您获得所需输出的问题?看起来您需要使用 3 个变量来跟踪 2 个计数和运行总和。
-
老实说,我只是对开始解析文件后该怎么做感到困惑。我想过将 int 用于双打数,将 int 用于非双打数,将 double 用于双打总和。我不知道如何构建这个想法。
标签: java double java.util.scanner