我在阅读输入时遇到问题,任何人都可以帮助我。
输入的每一行都有整数:X e Y用空格分隔。
12 1
12 3
23 4
9 3
我在java中使用这段代码但是没有用,只读第一行可以帮助我吗?
String []f;
String line;
Scanner in=new Scanner(System.in);
while((line=in.nextLine())!=null){
f=line.split(" ");
int X,Y;
X=Integer.parseInt(f[0]);
Y=Integer.parseInt(f[1]);
if(X<=40 && Y<=40)
metohod(X,Y);
line=in.nextLine();
}
}
答案 0 :(得分:1)
你正在两次调用nextLine,一次是另一个,linha = xxx; 什么是林哈呢?试试这个
BufferedReader reader = new BufferedReader(...);
while((line = reader.readLine())!=null) {
String[] f = line.split(" ");
int X,Y;
X=Integer.parseInt(f[0]);
Y=Integer.parseInt(f[1]);
}
答案 1 :(得分:0)
line=in.nextLine();
您正在阅读下一行并且不做任何事情。如果你删除它应该工作。
答案 2 :(得分:0)
你过多地调用一个line=in.nextLine()
,但为什么不使用in.nextInt()
?以下应该按预期工作:
Scanner in = new Scanner(System.in);
while(in.hasNextLine()) {
int x = in.nextInt();
int y = in.nextInt();
if(x <= 40 && y <= 40)
method(x, y);
}
(代码经过测试,读取的内容不仅仅是第一行。您之前的问题可能是输入文件的新行格式。)
要调试它,您可以使用Scanner(File file)
构造函数。
答案 3 :(得分:0)
由于您使用的是Scanner
,为什么不使用nextInt()
代替nextLine()
?这样你可以两次调用nextInt()
并获得每行的两个数字。
您对其进行编码的方式看起来好像是在尝试使用BufferedReader
而不是Scanner
。