我想从用户那里获取几个输入。
输入1: 1 ;输入2: 2 ;输入3: 3 ;输入n: n
但是,如果用户输入2个数字,扫描仪也会读取它!
输入1: 1_2 2被读取。
如何通过输入空格来阻止用户存储第n个值?
答案 0 :(得分:-1)
使用正则表达式或模式从行中抓取数字。如果你想抛出异常:
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...
}
答案 1 :(得分:-1)
您可以使用BufferedReader或使用sc.nextLine()
并转换为整数。
如果你想丢弃第二个,
String v = sc.nextLine() + " ";
int i = Integer.parseInt(v.substring(0,v.indexOf(" "));