java - 分隔的整数列表

标签 java

这是原始提示:

编写程序,在命令行从用户处获取逗号分隔的整数字符串(例如“4,8,16,32,...”),然后将字符串转换为整数数组列表(使用包装类) 每个元素包含一个输入整数序列。最后,使用 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 循环上,特别是将每个数字打印到单独的行。

最佳答案

转换此字符串的最简单方法是根据逗号将其拆分并将 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);

关于java - 分隔的整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36161343/

相关文章:

java - 在没有字段的类中实现 hashCode() 和 equals()

java - 计算java中递归调用的次数

java - 连续读取套接字的所有输入

java - 另一个警报对话框之后的警报对话框?第一个不见了!安卓

java - RecyclerView 中的边缘褪色

java - java程序中的安全sftp密码

java - MapStruct:是否可以为某个类型的所有嵌套字段指定使用相同的命名映射?

java - 在 Java 中解析格式错误的 json

java - 如何在java中使用5个log4j属性生成5个(超过2个)日志文件

java - 我需要使用 JDK 13.0.2 编译什么版本的 JRE?