2

所以基本上,我试图从键盘输入中收集变量并使用逗号分割变量。虽然它似乎不起作用。这可能是我忽略了但尝试了一段时间但无法弄清楚的简单事情。

public static void main(String[] args) {

      Scanner scan = new Scanner(System.in);

      scan.useDelimiter(",");

      String str1 = scan.next();
      String str2 = scan.next();
      double num1 = scan.nextDouble();
      double num2 = scan.nextDouble();

      System.out.println(str1);
      System.out.println(str2);
      System.out.println(num1);
      System.out.println(num2);
4

2 回答 2

2

我编译了您的代码并使用以下输入运行它

你好,世界,23,42,

它工作正常。但是请注意尾随的“,”。这是因为要完成您的最终输入,它需要被分隔。如果这不是故意的,您可以通过使用正则表达式来解决它,以使用逗号或换行符作为分隔符。因此,如果您使用这行代码:

scan.useDelimiter("[,|\\n]");

使以下输入工作

你好,世界,23,32

于 2013-08-13T05:58:15.323 回答
1

您必须提供如下输入,然后这将起作用。

 k,h,2,3,

你也必须把 , 输入的结尾。

 name,name2,54.7,98.6,

或更改您的代码如下

   Scanner scan = new Scanner(System.in);
    scan.useDelimiter(",|\\n");  // this will accept input name,name2,54.7,98.6
    String str1 = scan.next();
    String str2 = scan.next();
    double num1 = scan.nextDouble();
    double num2 = scan.nextDouble();

    System.out.println(str1);
    System.out.println(str2);
    System.out.println(num1);
    System.out.println(num2);
于 2013-08-13T06:04:19.183 回答