您的位置:首页 > 编程语言 > Java开发

Java 从控制台读入一个动态字符串数组

2017-07-31 19:15 295 查看
要求描述:今天刷题的时候,需要从控制台读入一个int型的动态数组到Vector中存储,如输入1 2 3 4 5。

想都没想,于是便有了下面的代码。

Scanner sc = new Scanner(System.in);
Vector<Integer> list = new Vector<>();
while (sc.hasNextInt()) { // 判断是否结束
int s = sc.nextInt();// 读入整数
list.add(s);

}
for(int e : list){
System.out.println(e);
}


不过问题马上来了,因为while 循环是跳不出去的,所以一直会循环着,这样我就没办法进行后续的操作。

解决办法:

某些刷题的编译器,上面的代码的while循环是可以跳出去的,所以,如果编译器允许的话。就没关系了。如果不允许的话,可以尝试下面的代码:

思路是:作为String读入,再将字符串转换成int数组

Scanner in = new Scanner(System.in);
while (in.hasNext()) {
Vector<Integer> list = new Vector<>();
String s = in.nextLine();
String c[] = s.split(" ");
for (int i = 0; i < c.length; i++) {
// 先由字符串转换成char,再转换成String,然后Integer
int e = Integer.parseInt(String.valueOf(c[i]));
list.add(e);
}

for(int e : list){
System.out.println(e);
}


至于为什么不能跳出循环,这个google上有很好的回答。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 控制台 Scanner
相关文章推荐