我目前有这个代码,但是当它被打印时,它会一个接一个地在不同的行上打印整数。如何格式化,以便打印如下:[1,2,4,5,6]
我已经尝试将ArrayList转换为数组,但我不能正确地执行它,因为它似乎不起作用。
import java.util.*;
public class PartBMod {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter your array of integers (using commas to separate them, no spaces): ");
ArrayList<Integer> arrayList = new ArrayList<Integer>();
String str = new String(input.nextLine());
String[] array = str.split(",");
for (String i : array) {
arrayList.add(Integer.parseInt(i));
}
Collections.sort(arrayList);
for (Integer i : arrayList) {
System.out.println(i);
}
}
答案 0 :(得分:3)
您想要的格式是ArrayList
的默认格式。你可以用
System.out.println(arrayList);
答案 1 :(得分:1)
虽然艾略特的回答是,如果toString()
没有碰巧成为你想要的,你可以用一个陈述来推销自己:
System.out.println(
Arrays.stream(input.nextLine().split(","))
.mapToInt(Integer::parseInt)
.sort()
.mapToObj(String::valueOf)
.collect(Collectors.join(",", "[", "]")));
答案 2 :(得分:0)
这样做很简单:
System.out.print("[");
for (int i = 0; i < arrayList.size(); i++) {
System.out.print(arrayList.get(i));
if(i != arrayList.size()-1)
System.out.print(", ");
}
System.out.println("]");
答案 3 :(得分:-1)
您的代码没有按照您希望的方式工作的原因是因为您使用的是println。打印完每个项目后,它会添加一个新行。我会做的是这样的事情
String textToPrint = "[ ";
for (int i =0; i < arrayList.size(); i++) {
textToPrint += String.valueOf(i) + ", ";
}
textToPrint = textToPrint.substring(0, textToPrint.length() -2);
textToPrint += "]";
System.out.println(textToPrint);
这样您就可以将每个整数添加到要打印的字符串中。 长尾&#39;在这种情况下,答案更清晰,更有效,但在其他情况下可能需要此循环。 子字符串行删除尾随的逗号和空格。 IMO比在for循环中添加if语句更清晰。