Java中是否有Python的str.join的直接等价物?

2022-09-01 13:10:08

可能的重复项:
在Java中构建一串分隔项目的最佳方法是什么?
Java:将 List<String> 转换为 join()d 字符串

在Java中,给定一个集合,获取迭代器并为第一个(或最后一个)元素做一个单独的案例,其余元素以获得逗号分隔的字符串似乎很无聊,在Python中是否有类似的东西?str.join

为避免它作为重复关闭而进行的额外澄清:我宁愿不使用像Apache Commons这样的外部库。

谢谢!

几年后更新...

Java 8 前来拯救


答案 1

不,没有。这是我的尝试:

/**
 * Join a collection of strings and add commas as delimiters.
 * @require words.size() > 0 && words != null
 */
public static String concatWithCommas(Collection<String> words) {
    StringBuilder wordList = new StringBuilder();
    for (String word : words) {
        wordList.append(word + ",");
    }
    return new String(wordList.deleteCharAt(wordList.length() - 1));
}

答案 2

很长一段时间,Java都没有提供这样的方法。像许多其他人一样,我为字符串数组和集合(迭代器)做了这样的连接版本。

但是Java 8添加了:String.join()

String[] arr = { "ala", "ma", "kota" };
String joined = String.join(" ", arr);
System.out.println(joined);