Java 无法读取整数输入的最后一行
你好, 上面给出的代码一次只取一行,我将其粘贴到输入中: 110 100 200 201 210 900 1000 它应该读取每一行,取每一个整数并将其放入input1和input2中,然后调用方法maxcycle。但是,扫描仪没有读取最后一行 *Java 无法读取整数输入的最后一行,java,input,java.util.scanner,system.in,Java,Input,Java.util.scanner,System.in,你好, 上面给出的代码一次只取一行,我将其粘贴到输入中: 110 100 200 201 210 900 1000 它应该读取每一行,取每一个整数并将其放入input1和input2中,然后调用方法maxcycle。但是,扫描仪没有读取最后一行 *kbd.lastLine()无法工作,因为我不需要字符串。我要整数 请帮助,谢谢。您可以使用hasNextInt方法 while(kbd.hasNextInt()) { int input1=kbd.nextInt(); int input2=kbd
kbd.lastLine()
无法工作,因为我不需要字符串。我要整数
请帮助,谢谢。您可以使用hasNextInt方法
while(kbd.hasNextInt())
{
int input1=kbd.nextInt();
int input2=kbd.nextInt();
这是因为即使在最后一行调用nextInt()
两次之后,hasNextLine()
仍然是true
,因为最后一个\n
仍在输入流中。因此,您应该或添加nextLine()
如下:
public static void main(String[] arg) {
System.out.println("Enter the pairs: ");
Scanner kbd = new Scanner(System.in);
while(kbd.hasNextLine() ) {
int input1 = kbd.nextInt();
int input2 = kbd.nextInt();
maxcycle(input1,input2);
}
}
或者将hasNextLine()
替换为hasNextInt()
:
while(kbd.hasNextLine()) {
int input1 = kbd.nextInt();
int input2 = kbd.nextInt();
kbd.nextLine();
maxcycle(input1,input2);
}
请尝试在for循环中添加System.out.println语句,以验证是否捕获了所有输入 例如:
while(kbd.hasNextInt()) {
int input1 = kbd.nextInt();
int input2 = kbd.nextInt();
maxcycle(input1,input2);
}
此方法:
System.out.println("input1:"+input1);
System.out.println("input2:"+input2);
maxcycle(input1,input2);
如果当前是最后一行要读取,则返回false,因此根据您的条件,最后一行不会被处理。您可以更改条件以确保正确处理最后一行,或者读取while块之外的最后两个元素
另一种方法是,如果您确切知道输入的格式,例如,假设第一行是二维数组的大小,您可以根据该值读取所有数字
kbd.hasNextLine()
Scanner s=新的扫描仪(System.in);
//读第一个数字
长i=s.nextLong();
长j=s.nextLong();
用于(长i1=0;i1
使用while(kbd.hasNextLine())
并尝试读取整数…这是错误的我已经做了这两件事,仍然给出了输出:输入对:1 10 100 200 201 210输入1 10 20 100 200 125 201 210 89输出900 1000**这也是输入,但它保持不变,在整个输出之后,并且没有得到计算
Scanner s = new Scanner(System.in);
// Read first number
long i = s.nextLong();
long j = s.nextLong();
for (long i1 = 0; i1 < i; i++) {
for (long j1 = 0; j1 < j; i++) {
long n1 = s.nextLong();
long n2 = s.nextLong();
// Do something with n1 and n2...
}
}