(原始问题,已经回答)
我希望程序从文本文件中读取整数。数据文件如下所示:
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
如果我需要添加任何内容来更好地解释我的问题,请告诉我。
答案 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]);