我在使用分隔符时遇到问题。我的代码如下:
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个字符来分隔输入,而不是两个字符。程序必须能够接受如下输入:
1 2 3
或1, 2, 3
。目前它可以处理1 2 3
和1,2,3
,但不能处理1, 2, 3
最后一个案例中的额外空格一定会把它抛到一边。你是怎么处理这个问题的?
此外,我必须能够接受数量可变的整数作为输入,最多100个整数,并将它们插入到队列中。显然,我定义的三个变量是不够的,但明确定义100也是多余的。处理这个问题最有效的方法是什么?提前谢谢。
发布于 2016-11-09 17:35:25
尝试将分隔符更改为\\D+
(即in.useDelimiter("\\D+");
)。
编辑:
此时,您要求分隔符拆分单个非数字字符。通过添加+,您告诉它在连续的非数字字符块上拆分。分隔符是一个正则表达式,这里有关于它们的更多信息:www.regular-expressions.info/tutorial.html
发布于 2016-11-09 18:15:15
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 no。整数输入的
https://stackoverflow.com/questions/40512828
复制相似问题