这是原始提示:
编写程序,在命令行从用户处获取逗号分隔的整数字符串(例如“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/