使用包装类将String转换为整数的arraylist

时间:2016-03-20 23:31:38

标签: java string arraylist integer

我试图编写一个程序,它接受一串用户输入,如(5,6,7,8),并将其转换为整数的数组列表,例如{5,6,7,8}。我无法弄清楚我的for循环。任何帮助都会很棒。

String userString = "";
ArrayList<Integer> userInts = new ArrayList<Integer>();

System.out.println("Enter integers seperated by commas.");
userString = in.nextLine();

for (int i = 0; i < userString.length(); i++) {
    userInts.add(new Integer(in.nextInt()));
}

4 个答案:

答案 0 :(得分:1)

让我们看看这些台词:

String userString = ""
int[] userInt = new int[userString.length()];

此时此userString.length() = 0因为它不包含任何内容所以这与编写int[] userInt = new int[0]实例化一个无法容纳任何内容的数组相同。

这也是一个数组而不是arrayList。 arrayList看起来像

ArrayList<Integer> myList = new ArrayList()<Integer>;

答案 1 :(得分:1)

如果您的列表由一位数字组成,您的方法可以正常工作,除非您需要在分配结果数组之前弄清楚字符串中有多少位数。

如果您要处理多位数字,请先在逗号上使用String.split。这将告诉您需要分配多少个数字。然后浏览字符串数组,并使用Integer.parseInt方法解析每个数字。

注意:我故意不显示任何代码,因此您不会错过任何有趣的编码。通过阅读文档,您似乎已经掌握了足够的知识来完成这项任务。

答案 2 :(得分:1)

我假设inScanner

我没有看到停止的状况。只要你快乐,我就会假设你想继续这样做。

List<Integer> arr = new ArrayList<Integer>();

while(in.hasNext()) 
    arr.add(in.nextInt());

而且,说你知道你会得到10个数字..

int count = 10;
while(count-- > 0) 
    arr.add(in.nextInt());

答案 3 :(得分:0)

我可以建议不同的输入格式吗?第一行输入将由整数N组成。下一行包含N个空格分隔的整数。

5
3 20 602 3 1

用于接受此输入的代码,您可以使用java.util.Scanner#nextInt()方法确保只读取有效的整数值。

这种方法的另一个好处是在输入时验证输入,而不是接受字符串并且必须验证和解析它。 String方法提供了许多需要处理的边缘情况。