This question already has answers here:
What's the best way to build a string of delimited items in Java?

(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