麻烦读下一个int

时间:2013-09-18 21:29:24

标签: java

(原始问题,已经回答)

我希望程序从文本文件中读取整数。数据文件如下所示:

5 4
3 5
4 5
3 2

每行的第一个数字是par,第二个数字是分数。因为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

Par是:3

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

高尔夫比分:

得分1:4

Par是:5

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

3 个答案:

答案 0 :(得分:5)

你不能“倒带”扫描仪,一旦你读完了这条线,就会消失,你再也无法读取它了。你可以尝试这样的事情:

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

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

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

答案 1 :(得分: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]);

答案 2 :(得分:0)

您可以读取它的分割线

String line1 = in.nextLine();       
String[] parScore = line.split(" ");
System.out.println("Score 1: " + parScore[1]);
System.out.println("Par is: " + parScore[0]);