0

(原始问题,已经回答)

我想要一个程序从文本文件中读取整数。数据文件如下所示:

5 4
3 5
4 5
3 2

每行的第一个数字是标准杆,第二个数字是得分。因为 5 - 4 = 1,比分是低于标准杆 1 杆(这是小鸟球)。我的第一行代码:

    in = new Scanner (dataFile);
    System.out.println("Golf Scores: ");                                                
    String line1 = in.nextLine();       
    System.out.println("Score 1: " + line1);
    int par1 = in.nextInt();
    System.out.println("Par is: " + par1);

当我运行它时,我得到了这个:

高尔夫分数:

分数 1:5 4

标准杆:3

所以标准杆和分数显示正确。但是,显示的 par 显示文本文件下一行的 par。我希望它再次显示“5”。我尝试将 in.nextInt 放在 in.nextLine 之前,但是当我尝试这样做时,我得到了这个

高尔夫分数:

得分 1:4

标准杆:5

另外,如果我需要添加任何内容来更好地解释我的问题,请告诉我。

4

3 回答 3

5

您无法“倒带”扫描仪,一旦您阅读了该行,它就消失了,您无法再次读取它。你可以尝试这样的事情:

int par = in.nextInt();
int score = in.nextInt();

System.out.println("Score: " + par + " " + score);
System.out.println("Par is:" + par);

在这里,我们开始分别读取和存储两个整数,然后显示它们。

于 2013-09-18T21:33:00.057 回答
3

你不应该关心它是否是一个 int (尽管它总是一个 int - 在你的情况下)所以你不必费心使用nextInt()

String line = in.nextLine();    
String[] nums = line.split(" ");
System.out.println("score: " + nums[0]/*par*/ + " " + nums[1]/*score*/);
System.out.println("par is:" + nums[0]);
于 2013-09-18T21:34:49.583 回答
0

你可以像这样阅读分割线

String line1 = in.nextLine();       
String[] parScore = line.split(" ");
System.out.println("Score 1: " + parScore[1]);
System.out.println("Par is: " + parScore[0]);
于 2013-09-18T21:35:50.510 回答