Java-Java中Scanner输入的疑问

发布于 2016-10-11 03:34:54 字数 747 浏览 1243 评论 2

想输入一串数字,并且以逗号隔开,要求最后一个数字后面什么也不加
example: 235,345,3456,3
最后就想输出这些数字。

发现用了Scanner类之后,按照example输入的格式就阻塞在输入那边了,而且要输入 235,345,3456,3,, (3后面跟着两个逗号),才会有输出语句,请问大神怎么破才能严格按照example输入不阻塞?

import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int i=0;
int[] temp = new int[4];//输入4个数字
Scanner sc = new Scanner(System.in);
sc.useDelimiter(",");//逗号隔开

while(sc.hasNextInt()){
temp[i++]=sc.nextInt();
}

for(i=0;i<temp.length;i++){
System.out.println(temp[i]);
}
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-06-01 03:32:13

你的问题在这一句:

while(sc.hasNextInt())

程序必须看到没有int才会停止。你的倒数第二个逗号保证了最后一个int输入,你的最后一个逗号保证了输入一个不是int的信息……

解决方案:
还真没有……后面的那两个逗号你貌似免除不了啊……

想挽留 2017-01-04 22:09:45

算是自问自答吧,找到方法了,用的String的split()就能解决了

 import java.io.*;
public class Main{
public static void main(String[] args) {
int i=0;
String s=null;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
s = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] temp = s.split(",");
for(i=0;i<temp.length;i++){
System.out.println(temp[i]);
}
}
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文