这是原始提示:
编写程序,在命令行中从用户获取以逗号分隔的整数字符串(例如“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循环,特别是将每个数字打印到一个单独的行。
答案 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[]
方法将输入字符串转换为split
:input.split(",")
。这将为您提供一个数组,其中元素是由","
分隔的字符串。
然后,要将String转换为Integer
包装器,您可以使用:
Integer i = Integer.valueOf(str);
Integer i = Integer.parseInt(str)
答案 2 :(得分:0)
myInts为空,您的数据为整数 我建议你搜索一下fonction:split(来自String)