扫描仪 - 空白(Java)

时间:2015-02-25 02:34:50

标签: java java.util.scanner

我想从用户那里获取几个输入。

输入1: 1 ;输入2: 2 ;输入3: 3 ;输入n: n

但是,如果用户输入2个数字,扫描仪也会读取它!

输入1: 1_2 2被读取。

如何通过输入空格来阻止用户存储第n个值?

2 个答案:

答案 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(" "));