我遇到分隔符问题。我的代码如下:
Scanner in=new Scanner(System.in);
in.useDelimiter("\\D");
int x,y,z;
System.out.println("Enter 3 digits: ");
x=in.nextInt();
y=in.nextInt();
z=in.nextInt();
System.out.println(x + " " + y + " " + z);
in.close();
原谅我缺乏分隔符的经验,但我只能让我的程序用1个字符而不是2个字符来分隔输入。该程序必须能够按如下方式输入:
1 2 3
或1, 2, 3
。
目前,它可以处理1 2 3
和1,2,3
,但不能处理1, 2, 3
最后一个案例中的额外空格必须将其抛弃。你怎么处理这个?
此外,我必须能够输入可变数量的整数作为输入,最多100个整数,并将它们插入队列。显然,我定义的三个变量是不够的,但明确定义100也是过度的。处理这个问题最有效的方法是什么?提前谢谢。
答案 0 :(得分:2)
尝试将分隔符更改为\\D+
(即in.useDelimiter("\\D+");
)。
修改强>
目前,您要求分隔符分割为单个非数字字符。通过添加+,你告诉它拆分连续的非数字字符块。分隔符是一个正则表达式,有关于这些分隔符的更多信息:www.regular-expressions.info/tutorial.html
答案 1 :(得分:0)
Scanner in=new Scanner(System.in);
in.useDelimiter("\\D+");
int n=5; // Here you should define your limit
int[] data=new int[n];
for(int i=0;i<data.length;i++)
{
System.out.println("Enter "+i+" digit: ");
data[i]=in.nextInt();
}
// print store value
for(int i=0;i<data.length;i++)
{
System.out.println(data[i]);
}
in.close();
上面的代码可以帮助你获得n号。整数输入