扫描仪 - 空白 (Java)
Scanner - Whitespace (Java)
我想听取用户的一些意见。
输入1:1;输入2:2;输入 3:3;输入n:n
但是,如果用户输入 2 个数字,扫描器也会读取它!
输入1:1_2 2被读取。
如何防止用户通过输入白色 space 来存储第 n 个值?
使用正则表达式或模式从行中获取数字。如果你想抛出异常:
Pattern pattern = Pattern.compile("\d+");
String s = scanner.nextLine(pattern);
System.out.println(s);
如果你不...
Pattern pattern = Pattern.compile("\d+");
String s = scanner.nextLine();
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(s.substring(matcher.start(), matcher.end()));
} else {
// TODO The user didn't give us a number...
}
您可以使用 BufferedReader 或使用 sc.nextLine()
并转换为整数。
如果你想放弃第二个,
String v = sc.nextLine() + " ";
int i = Integer.parseInt(v.substring(0,v.indexOf(" "));
我想听取用户的一些意见。
输入1:1;输入2:2;输入 3:3;输入n:n
但是,如果用户输入 2 个数字,扫描器也会读取它!
输入1:1_2 2被读取。
如何防止用户通过输入白色 space 来存储第 n 个值?
使用正则表达式或模式从行中获取数字。如果你想抛出异常:
Pattern pattern = Pattern.compile("\d+");
String s = scanner.nextLine(pattern);
System.out.println(s);
如果你不...
Pattern pattern = Pattern.compile("\d+");
String s = scanner.nextLine();
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
System.out.println(s.substring(matcher.start(), matcher.end()));
} else {
// TODO The user didn't give us a number...
}
您可以使用 BufferedReader 或使用 sc.nextLine()
并转换为整数。
如果你想放弃第二个,
String v = sc.nextLine() + " ";
int i = Integer.parseInt(v.substring(0,v.indexOf(" "));