如何终止接受由空格和换行符分隔的输入的 Scanner while 循环
How to terminate a Scanner while loop that takes input seperated by both whitespace and linebreaks
我试图在没有更多输入可供读取时终止此 Scanner while 循环。输入是每行两个由 space 分隔的数字。对于未公开的行数,下一行包含相同的内容,依此类推。输出应该是这两个数字的差值。
输入例如可以是
10 12
71293781758123 72784
1 12345677654321
输出的位置
2
71293781685339
12345677654320
只要找出区别,代码就可以工作,但我找不到结束 while 循环的方法。
如果我尝试将条件设置为 while (!sc.next().equals(""))
,它会读取每两个数字之间的白色 space 作为条件,并跳过第二个数字。
我无法通过执行 if (sc.next().equals("exit")
之类的操作来创建手动中断,因为输出必须只是差异而没有其他内容。
public static void main(String[] args) {
long output;
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
long nr1 = sc.nextLong();
long nr2 = sc.nextLong();
if (nr1 > nr2) {
output = nr1 - nr2;
} else {
output = nr2 - nr1;
}
System.out.println(output);
}
}
同样,我正在寻找一种方法来在不再有包含两个数字的行时终止它。
我一直在为这个问题疯狂地谷歌搜索,但一直无法找到解决我的问题的解决方案。非常感谢任何帮助!
如果您想在输入 ""
时终止循环,那么只需在代码中添加一个 input
变量即可。
String input;
while(sc.hasNextLine() && !(input = sc.nextLine()).equals("")) {
//Now you have your input and you need to parse it.
//There are many ways to parse a string.
String[] numbers = input.split(" ");
int num1 = Integer.parseInt(numbers[0]);
int num2 = Integer.parseInt(numbers[1]);
System.out.println( num1 > num2 ? num1 - num2 : num2 - num1);
}
我试图在没有更多输入可供读取时终止此 Scanner while 循环。输入是每行两个由 space 分隔的数字。对于未公开的行数,下一行包含相同的内容,依此类推。输出应该是这两个数字的差值。
输入例如可以是
10 12
71293781758123 72784
1 12345677654321
输出的位置
2
71293781685339
12345677654320
只要找出区别,代码就可以工作,但我找不到结束 while 循环的方法。
如果我尝试将条件设置为 while (!sc.next().equals(""))
,它会读取每两个数字之间的白色 space 作为条件,并跳过第二个数字。
我无法通过执行 if (sc.next().equals("exit")
之类的操作来创建手动中断,因为输出必须只是差异而没有其他内容。
public static void main(String[] args) {
long output;
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
long nr1 = sc.nextLong();
long nr2 = sc.nextLong();
if (nr1 > nr2) {
output = nr1 - nr2;
} else {
output = nr2 - nr1;
}
System.out.println(output);
}
}
同样,我正在寻找一种方法来在不再有包含两个数字的行时终止它。 我一直在为这个问题疯狂地谷歌搜索,但一直无法找到解决我的问题的解决方案。非常感谢任何帮助!
如果您想在输入 ""
时终止循环,那么只需在代码中添加一个 input
变量即可。
String input;
while(sc.hasNextLine() && !(input = sc.nextLine()).equals("")) {
//Now you have your input and you need to parse it.
//There are many ways to parse a string.
String[] numbers = input.split(" ");
int num1 = Integer.parseInt(numbers[0]);
int num2 = Integer.parseInt(numbers[1]);
System.out.println( num1 > num2 ? num1 - num2 : num2 - num1);
}