我用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.有人可以建议我怎么做到这一点?
预先感谢您的帮助.
您可能正在调用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)
| 归档时间: |
|
| 查看次数: |
17703 次 |
| 最近记录: |