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(用逗号分隔)时,如何修改我的程序
答案 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个值。
如果您需要更改值的数量,可以使用循环从矢量中获取值。