Java中有没有与Python的str.join直接对应的功能?
可能的重复问题:
在Java中构建带分隔符的字符串的最佳方法是什么?
Java:将List<String>转换为连接的字符串
在Java中,如果你有一个集合,想要获取迭代器,然后单独处理第一个(或最后一个)元素和其他元素,以便得到一个用逗号分隔的字符串,这样的做法似乎有点无聊。有没有类似于Python中的str.join
的方法呢?
为了避免这个问题被关闭为重复问题,我想说明一下:我不想使用像Apache Commons这样的外部库。
谢谢!
几年后更新...
5 个回答
9
标准库里没有这个功能,但比如说,Guava库里有一个叫Joiner
的工具可以做到这一点。
Joiner joiner = Joiner.on(";").skipNulls(); . . . return joiner.join("Harry", null, "Ron", "Hermione"); // returns "Harry; Ron; Hermione"
不过,你也可以自己写一个,使用StringBuilder
就可以了。
15
不,没有这样的东西。下面是我尝试的代码:
/**
* 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));
}
18
很长一段时间,Java都没有提供这样的功能。和很多人一样,我自己也写过一些方法来处理字符串数组和集合(迭代器)的连接。
不过在Java 8中,新增了一个叫做 String.join()
的方法:
String[] arr = { "ala", "ma", "kota" };
String joined = String.join(" ", arr);
System.out.println(joined);