如何从ArrayList#toString()中删除括号[]?

Gol*_*irl 1 java arraylist

我用Java创建了一个看起来像这样的数组列表:

 public static ArrayList<Integer> error = new ArrayList<>();

for (int x= 1; x<10; x++)
 { 
    errors.add(x);
 }
Run Code Online (Sandbox Code Playgroud)

当我打印错误时,我得到错误

[1,2,3,4,5,6,7,8,9]

现在我想从这个数组列表中删除括号([]).我以为我可以使用方法errors.remove("["),但后来我发现它只是布尔值并显示true或false.有人可以建议我怎么做到这一点?

预先感谢您的帮助.

Adr*_*ter 8

您可能正在调用System.out.println来打印列表.JavaDoc说:

This method calls at first String.valueOf(x) to get the printed object's string value
Run Code Online (Sandbox Code Playgroud)

括号是由toStringArrayList 的实现添加的.要删除它们,您必须先获取字符串:

String errorDisplay = errors.toString();
Run Code Online (Sandbox Code Playgroud)

然后删除括号,如下所示:

errorDisplay = errorDisplay.substring(1, errorDisplay.length() - 1);
Run Code Online (Sandbox Code Playgroud)

依赖于toString()实现并不是一种好的做法.toString()仅用于生成用于记录或调试目的的人类可读表示.所以最好在迭代时自己构建String:

List<Integer> errors = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for (int x = 1; x<10; x++) { 
    errors.add(x);
    sb.append(x).append(",");
}
sb.setLength(sb.length() - 1);
String errorDisplay = sb.toString();
Run Code Online (Sandbox Code Playgroud)

请注意,这不是一个数组,只是一个显示列表内容的String.要从列表创建数组,可以使用list.toArray():

// create a new array with the same size as the list
Integer[] errorsArray = new Integer[errors.size()];
// fill the array
errors.toArray(errorsArray );
Run Code Online (Sandbox Code Playgroud)