定界的整数列表

时间:2016-03-22 17:32:16

标签: java string comma

这是原始提示:

编写程序,在命令行中从用户获取以逗号分隔的整数字符串(例如“4,8,16,32,...”),然后将String转换为整数的ArrayList(使用包装类) )每个元素按顺序包含一个输入整数。最后,使用for循环将整数输出到命令行,每个都在一个单独的行上。

import java.util.Scanner;
import java.util.ArrayList;

public class Parser {


    public static void main(String[] args) {

        Scanner scnr = new Scanner(System.in);

        ArrayList<String> myInts = new ArrayList<String>();
        String integers = "";

        System.out.print("Enter a list of delimited integers: ");
        integers = scnr.nextLine();

        for (int i = 0; i < myInts.size(); i++) {
            integers = myInts.get(i);
            myInts.add(integers);
            System.out.println(myInts);
        }
    }
}

我能够将它接受到它接受分隔整数列表的位置,但我仍然坚持转换它和for循环,特别是将每个数字打印到一个单独的行。

3 个答案:

答案 0 :(得分:3)

转换此字符串的最简单方法是根据逗号分割它并将Integer.valueOf应用于每个元素:

List<Integer> converted = Arrays.stream(integers.split(","))
                                .map(Integer::valueOf)
                                .collect(Collectors.toList());

打印它们,假设您必须使用for循环,只是意味着循环遍历它们并单独打印每个循环:

for (Integer i : converted) {
    System.out.println(i);
}

如果你不必使用for循环,那么即使没有存储到临时列表,也可以使用流更优雅地完成此操作:

Arrays.stream(integers.split(","))
      .map(Integer::valueOf)
      .forEach(System.out::println);

答案 1 :(得分:2)

首先,您可以使用String[]方法将输入字符串转换为splitinput.split(",")。这将为您提供一个数组,其中元素是由","分隔的字符串。

然后,要将String转换为Integer包装器,您可以使用:

  1. Integer i = Integer.valueOf(str);
  2. Integer i = Integer.parseInt(str)

答案 2 :(得分:0)

myInts为空,您的数据为整数 我建议你搜索一下fonction:split(来自String)