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

use*_*841 6 java delimiter java.util.scanner

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Men*_*ena 14

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

如:

dis.useDelimiter("\\D");
Run Code Online (Sandbox Code Playgroud)

useDelimiter方法采用a Pattern或a 的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();
Run Code Online (Sandbox Code Playgroud)

输入(或者)

  • 1,2,3
  • 1 2 3

产量

1 2 3
Run Code Online (Sandbox Code Playgroud)

注意

  • 别忘了closeScanner!
  • 有关s 的API,请参阅API,Pattern以便更好地分隔输入.


Tia*_*tos 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);
    }
Run Code Online (Sandbox Code Playgroud)

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

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