【问题标题】:Delimiter Comma分隔符逗号
【发布时间】:2018-06-21 20:59:54
【问题描述】:

我正在尝试分离三个整数并打印出每个整数,但是当我这样做时,它会给我一个输入 misMatchException:

import java.util.Scanner;
public class blah
public static void main(String [] args){
       Scanner scnr = new Scanner(System.in);
       System.out.println("Enter 3 numbers separated by commas");
       scnr.useDelimiter(",");
       int one = 0;
       int two = 0;
       int three = 0;
       one = scnr.nextInt();
       two = scnr.nextInt();
       three = scnr.nextInt();
       scnr.close();
       System.out.println(one);
       System.out.println(two);
       System.out.println(three);
    }
}

【问题讨论】:

  • 你输入了什么?
  • scnr.useDelimiter(",|\\n");

标签: java delimiter comma


【解决方案1】:

这很可能是因为您输入的内容不正确 - 您可能正在尝试输入类似 1, 2, 3 的内容。这不起作用,因为您的分隔符只是一个逗号,而不是逗号+空格。

按照您编写代码的方式,您需要输入1,2,3,,然后按回车键。

另外:请注意,public class blah 之后缺少一个左大括号。

【讨论】:

    【解决方案2】:

    要克服内联提要,请使用scnr.useDelimiter("[ ,\\r\\n]");

    【讨论】:

      【解决方案3】:

      我假设您的输入看起来像这样

      1,2,3[enter]
      

      您将分隔符设置为“,” - 在这种情况下,扫描程序会查找下一个逗号以完成读取下一个值,但它可以找到它。 您应该以这种形式输入值(需要逗号):

      1,2,3,[enter]
      

      您可以查看 Scanner.reset() 文档以了解他们如何设置默认空白分隔符:

      scanner.useDelimiter("\\p{javaWhitespace}+")
      

      现在您可以创建将空格或逗号作为分隔符处理的模式(它使用垂直线 | 在正则表达式中声明 OR 表示法):

       scanner.useDelimiter(",|\\p{javaWhitespace}+")
      

      此行接受:1,2,3,4[输入] 如需更具体的输入 - 使用正则表达式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 2017-06-13
        相关资源
        最近更新 更多