首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java分隔符问题

Java分隔符问题
EN

Stack Overflow用户
提问于 2016-11-09 17:33:14
回答 2查看 284关注 0票数 0

我在使用分隔符时遇到问题。我的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 31, 2, 3。目前它可以处理1 2 31,2,3,但不能处理1, 2, 3

最后一个案例中的额外空格一定会把它抛到一边。你是怎么处理这个问题的?

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

EN

回答 2

Stack Overflow用户

发布于 2016-11-09 17:35:25

尝试将分隔符更改为\\D+ (即in.useDelimiter("\\D+");)。

编辑:

此时,您要求分隔符拆分单个非数字字符。通过添加+,您告诉它在连续的非数字字符块上拆分。分隔符是一个正则表达式,这里有关于它们的更多信息:www.regular-expressions.info/tutorial.html

票数 2
EN

Stack Overflow用户

发布于 2016-11-09 18:15:15

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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。整数输入的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40512828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文