Java分隔符问题

时间:2016-11-09 17:33:14

标签: java delimiter

我遇到分隔符问题。我的代码如下:

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 31, 2, 3。 目前,它可以处理1 2 31,2,3,但不能处理1, 2, 3

最后一个案例中的额外空格必须将其抛弃。你怎么处理这个?

此外,我必须能够输入可变数量的整数作为输入,最多100个整数,并将它们插入队列。显然,我定义的三个变量是不够的,但明确定义100也是过度的。处理这个问题最有效的方法是什么?提前谢谢。

2 个答案:

答案 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号。整数输入