我有一个问题,我被要求从文件中读取标记并打印出三个值:标记的数量是数字(双打),标记的数量那不是数字,而是数字的总和。和那些价值。Java扫描器类,计数我的双打和非双打
我已经设法读取文本文件,并已能够根据它们是否双打将它们分开,但是我在构建我的输出时遇到了困难,目前它只是列表,除了非双打被列为这样在我的文本文件是:
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个计数和运行总和。 – 4castle
老实说,我只是对开始解析文件后该怎么做感到困惑。我考虑过使用int来表示双打数,int表示非双打数,double表示双打总数的双倍。我不知道如何构建这个想法。 – RasecCesar