格式化整数的ArrayList

时间:2016-09-04 04:57:02

标签: java arrays arraylist formatting format

我目前有这个代码,但是当它被打印时,它会一个接一个地在不同的行上打印整数。如何格式化,以便打印如下:[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);
    }
}

4 个答案:

答案 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语句更清晰。