String join()
在Java8中String类有一个新的字符串分割拼接方法join(),String join()方法将多个元素通过给定的分隔符进行分割并返回一个新的字符串。该功能在日常开发中经常使用。该方法以特定的分隔符进行分割,去掉了最后一位冗余的分隔符。
该方法有俩个重载方法:
【1】两个参数,第二个参数是Iterable接口的子类,可以处理List/Set等集合类型
【2】下面这个方法,第二个参数是一个可变长度的字符
【测试】
@Test
public void test1() {
String res1 = String.join(",", "A", "B", "C");
System.out.println(res1);
List<String> strings = new LinkedList<>();
strings.add("Java");
strings.add("is");
strings.add("cool");
String res2 = String.join("、", strings);
System.out.println(res2);
Set<String> set = new LinkedHashSet<>();
set.add("Java");
set.add("is");
set.add("very");
set.add("cool");
String res3 = String.join("、", set);
System.out.println(res3);
}
当我们进入到String.join源码中可以看到,其内部就是使用StringJoiner来实现的。
StringJoiner实践
StringJoiner用于构造由分隔符分隔的字符序列,并且可选地从提供的前缀开始并以提供的后缀结尾。
示例一:分割
使用StringJoiner分割合并字符串
// 使用StringJoiner分割合并字符串
StringJoiner mystring = new StringJoiner("-");
mystring.add("Logan");
mystring.add("Magneto");
mystring.add("Rogue");
mystring.add("Storm");
System.out.println(mystring);
示例二:前缀和后缀
【1】给定分隔符切分数据
【2】在合并后的字符串上添加前缀和后缀字符串
// 使用StringJoiner分割合并字符串
StringJoiner mystring = new StringJoiner("-");
mystring.add("Logan");
mystring.add("Magneto");
mystring.add("Rogue");
mystring.add("Storm");
System.out.println(mystring);
实例三:合并StringJoiner
【1】我们可以使用StringJoiner.merge方法去合并两个StringJoiner对象。
【2】需要注意,合并后的新字符串使用的前后缀是第一个StringJoiner 的,此外两个StringJoiner 对象的之间的分隔符使用的也是第一个StringJoiner 对象的。
StringJoiner str1 = new StringJoiner(",", "(", ")");
str1.add("A");
str1.add("B");
str1.add("C");
str1.add("D");
StringJoiner str2 = new StringJoiner("-", "pre", "suff");
str2.add("中国");
str2.add("安徽");
str2.add("合肥");
str2.add("高新区");
StringJoiner mergedString = str1.merge(str2);
System.out.println(mergedString);