最优雅的方式是将分隔符插入List <String>

com*_*oms 2 java loops

可能重复:
以逗号分隔列表(Java)的最清晰方法?

我有一个List<String>,我需要将此列表转换为单行并在String此元素之间插入分隔符List,除了第一个元素之前的位置和最后一个元素之后的位置;

我做了一个这样的循环:

StringBuffer sb = new StringBuffer();
for (String str : list) {
    sb.append(str).append(';');
}
if(sb.length() > 0)
    sb.deleteCharAt(sb.length() - 1);
Run Code Online (Sandbox Code Playgroud)

我不喜欢删除最后一个令牌句子.

那么,哪种更优雅的方式做同样的事情呢?

Boh*_*ian 10

不要重新发明轮子...... apache commons-lang库有这个StringUtils.join()方法,它完全符合你的要求:

String s = StringUtils.join(list, ";"); // for example
Run Code Online (Sandbox Code Playgroud)

Java 8更新:

在java 8中,String该类具有执行所需操作的join()方法:

String s = String.join(";", list);
Run Code Online (Sandbox Code Playgroud)

  • Guava也有StringJoiner,我们正在为JDK8(最后)开发一个类似的工具. (2认同)

Rei*_*eus 5

看看在Google的Guava Libraries 中使用Joiner.

String delimitedString = Joiner.on(";").join(list);
Run Code Online (Sandbox Code Playgroud)