This question already has answers here:
What's the best way to build a string of delimited items in Java?
(36个答案)
5年前关闭。
我经常遇到这个任务,以创建对象集合的String表示形式。
例:
我要创建的表示形式:“foo,bar,lorem,dolar” 。
每当我遇到这个任务时,我都会想知道哪种方法最干净,最方便的方式来达到预期的效果。
我知道有很多方法可以获取所需的表示形式,但是例如,我一直想知道,是否有可能仅通过使用for / each循环来创建字符串?
像这样:
还是最好直接使用迭代器(如果有的话)?
假设列表是一个集合(这就是他们在JDK中的处理方式):
当然,可以使用传统的for循环对数组进行索引或执行其他许多操作。
题
最容易 / 最易读 / 最安全的方法是将字符串列表转换为表示形式,以逗号分隔每个元素,处理边缘情况(以在第一个元素之前或最后一个元素之后没有逗号)?
(36个答案)
5年前关闭。
我经常遇到这个任务,以创建对象集合的String表示形式。
例:
String[] collection = {"foo", "bar", "lorem", "dolar"};
我要创建的表示形式:“foo,bar,lorem,dolar” 。
每当我遇到这个任务时,我都会想知道哪种方法最干净,最方便的方式来达到预期的效果。
我知道有很多方法可以获取所需的表示形式,但是例如,我一直想知道,是否有可能仅通过使用for / each循环来创建字符串?
像这样:
StringBuilder builder = new StringBuilder();
for (String tag : list) {
builder.append(tag + ", ");
String representation = builder.toString();
// but now the String look like this: "foo, bar, lorem, dolar, " which nobody wants
还是最好直接使用迭代器(如果有的话)?
假设列表是一个集合(这就是他们在JDK中的处理方式):
Iterator<String> it = list.iterator();
while (it.hasNext()) {
sb.append(it.next());
if (!it.hasNext()) {
break;
}
sb.append(", ");
}
当然,可以使用传统的for循环对数组进行索引或执行其他许多操作。
题
最容易 / 最易读 / 最安全的方法是将字符串列表转换为表示形式,以逗号分隔每个元素,处理边缘情况(以在第一个元素之前或最后一个元素之后没有逗号)?
最佳答案
使用Java 8,您可以:
String listJoined = String.join(",", list);
08-16 17:36