如何在java中读取逗号分隔的整数输入

时间:2014-04-08 11:53:37

标签: java java.util.scanner delimiter

import java.io.*;
import java.util.*;
class usingDelimiters
{
    public static void main(String args[])
    {
        Scanner dis=new Scanner(System.in);
        int a,b,c;
        a=dis.nextInt();
        b=dis.nextInt();
        c=dis.nextInt();
        System.out.println("a="+a);
        System.out.println("b="+b);
        System.out.println("c="+c);
    }
}

当我的输入为1 2 3(以空格分隔)时,此程序正常工作 但是,当我的输入是1,2,3(用逗号分隔)时,如何修改我的程序

2 个答案:

答案 0 :(得分:14)

您可以对非数字项使用分隔符,这会将任何非数字标记为分隔符。

如:

dis.useDelimiter("\\D");

useDelimiter方法采用Pattern的{​​{1}}或String表示。

完整示例:

Pattern

输入(或者)

  • Scanner dis=new Scanner(System.in); dis.useDelimiter("\\D"); int a,b,c; a=dis.nextInt(); b=dis.nextInt(); c=dis.nextInt(); System.out.println(a + " " + b + " " + c); dis.close();
  • 1,2,3

<强>输出

1 2 3

注意

  • 不要忘记1 2 3 close
  • 有关Scanner的{​​{3}}的详细信息,请参阅Pattern

答案 1 :(得分:8)

你可以使用nextLine方法读取一个String并使用split这个方法用逗号分隔,如下所示:

public static void main(String args[])
    {
        Scanner dis=new Scanner(System.in);
        int a,b,c;
        String line;
        String[] lineVector;

        line = dis.nextLine(); //read 1,2,3

        //separate all values by comma
        lineVector = line.split(",");

        //parsing the values to Integer
        a=Integer.parseInt(lineVector[0]);
        b=Integer.parseInt(lineVector[1]);
        c=Integer.parseInt(lineVector[2]);

        System.out.println("a="+a);
        System.out.println("b="+b);
        System.out.println("c="+c);
    }

此方法将使用仅以逗号分隔的3个值。

如果您需要更改值的数量,可以使用循环从矢量中获取值。