Java 整数扫描仪,用空行停止循环
Java scanner with integers, stop this loop with empty line
我编写了这个简单的循环来从标准输入中收集整数。
我如何修改这个循环,以便它在用户输入一个空行时停止?
现在循环继续进行,忽略空行,它只在我插入一个字母时停止(例如)。
我希望它既可以作为提示,也可以作为标准输入重定向。
提前致谢。
import java.util.Scanner;
public class example{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
boolean auth = true;
do {
try{
int num = in.nextInt();
in.nextLine();
System.out.println(num);
} catch(Exception e){
System.out.println(e);
in.nextLine();
auth = false;
}
} while(auth);
in.close();
}
}
您可以使用 in.nextLine()
代替 in.nextInt()
,然后使用 isEmpty()
函数检查它是否为空,并使用 Integer.parseInt()
将其转换回 int .你可以更有效地做到这一点,但这应该足够了
int num = 0;
String input = in.nextLine();
if(input.isEmpty()){
auth = false;
}
else{
num = Integer.parseInt(input);
System.out.println(num);
}
使用 next() 而不是 nextLine()。
nextLine() 读取输入,包括单词之间的 space。 space 将被读取为空字符串。
如果您使用 next(),它根本不会读取空行。它读取输入直到 space.
我编写了这个简单的循环来从标准输入中收集整数。 我如何修改这个循环,以便它在用户输入一个空行时停止? 现在循环继续进行,忽略空行,它只在我插入一个字母时停止(例如)。
我希望它既可以作为提示,也可以作为标准输入重定向。
提前致谢。
import java.util.Scanner;
public class example{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
boolean auth = true;
do {
try{
int num = in.nextInt();
in.nextLine();
System.out.println(num);
} catch(Exception e){
System.out.println(e);
in.nextLine();
auth = false;
}
} while(auth);
in.close();
}
}
您可以使用 in.nextLine()
代替 in.nextInt()
,然后使用 isEmpty()
函数检查它是否为空,并使用 Integer.parseInt()
将其转换回 int .你可以更有效地做到这一点,但这应该足够了
int num = 0;
String input = in.nextLine();
if(input.isEmpty()){
auth = false;
}
else{
num = Integer.parseInt(input);
System.out.println(num);
}
使用 next() 而不是 nextLine()。 nextLine() 读取输入,包括单词之间的 space。 space 将被读取为空字符串。 如果您使用 next(),它根本不会读取空行。它读取输入直到 space.