Java 从控制台读入一个动态字符串数组
2017-07-31 19:15
295 查看
要求描述:今天刷题的时候,需要从控制台读入一个int型的动态数组到Vector中存储,如输入1 2 3 4 5。
想都没想,于是便有了下面的代码。
不过问题马上来了,因为while 循环是跳不出去的,所以一直会循环着,这样我就没办法进行后续的操作。
解决办法:
某些刷题的编译器,上面的代码的while循环是可以跳出去的,所以,如果编译器允许的话。就没关系了。如果不允许的话,可以尝试下面的代码:
思路是:作为String读入,再将字符串转换成int数组
至于为什么不能跳出循环,这个google上有很好的回答。
想都没想,于是便有了下面的代码。
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中 我要将字符串以空格为标记分割成多个字符串,并将分割后的字符串设为一个字符串数组
- java中排序一个字符串数组
- 编写程序从标准输入设备读入的元素数据建立一个int型vector对象,然后动态创建与该vector大小一致的数组,把vector对象的所有元素复制给该数组
- java传入一个字符串 将它分割成大写字符为首的字符串数组
- 根据分隔符将一个长字符串分割保存到动态数组中
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- java基础将一个int数组转换成一个字符串
- java控制台程序如何判断String字符串中只输入了一个回车
- java实现list清除重复的字符串;arraylist动态数组;角谷定理最终得1,找出10000以内哪个数字的步骤最长
- java控制台程序如何判断String字符串中只输入了一个回车
- java中,如何将一个字节数组转换成字符串?
- 【Java】编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置
- 在控制台输入一段文本,将文本中的所有单词,存放到一个字符串数组中。 ( 要求占用内存最少)
- java控制台程序如何判断String字符串中只输入了一个回车
- 【Java】有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串的位置
- Java数组反射实现动态的判断一个对象书否是数组,并且对数组进行拆包输出 。。
- java中怎么判断一个字符串数组中包含某个字符或字符串
- Java数组反射实现动态的判断一个对象书否是数组,并且对数组进行拆包输出 。。
- java中排序一个字符串数组