我们假设我有一个datastructure
和n
元素(0, 1, ... , n-1)
。将列表打印到字符串时删除最后一个逗号或其他分隔符
并假设这些元素有一些我想要打印的属性(假设为int
)。我想用一个分隔符(comma
,space
)在一行上打印datastructure
。所以,结果会是这样的
13, 14, 15, 16, 17
什么是添加逗号和空格(在Java中)的最佳方式?
这些是我所采取的方针是:
如果
datastructure
是Iterable
,从0 to n-2
迭代,并追加分隔符到每台的,然后打印的最后一个元素。遍历所有元素并将所有内容附加到空
String
(或Stringbuilder
),然后在最后删除最后一个分隔符(hardcoded
)。
我觉得有更好的东西。
编辑:这个问题是独一无二的。 “可能的重复”只涉及打印,而不涉及分隔符。
EDIT2:尝试的要求
// 1st approach
public void printStuff(ArrayList<Integer> input) {
for (int i=0; i<input.size()-1; i++) {
System.out.print(input.get(i) + ", ");
}
System.out.println(input.get(input.size()-1);
}
的另一种尝试
// 2nd approach
public void printStuff(ArrayList<Integer> input) {
StringBuilder sb = new StringBuilder();
for (int i=0; i<input.size(); i++) {
sb.append(input.get(i)+", ");
}
sb.substring(0, input.size()-2);
System.out.println(sb.toString());
}
请张贴您的尝试代码。 –
如果你的列表元素是自定义对象,你也可以通过重写'Object#toString'来改变它们的表示形式。 – Mena
看看Guava的'Joiner'类的代码,看看它是如何实现的。或者'java.util.Arrays.toString'。 –