我们在使用javascript或者python的时候,都用过join方法,可以将一个集合转换成用指定字符连接集合中所有元素的字符串,例如:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())
</script>
在java中可以通过以下方式实现。
1、java8新增api:
1)StringJoiner类:
java8种新增一个StringJoiner类,用法如下:
StringJoiner joiner = new StringJoiner("-");
joiner.add("a");
joiner.add(null);
joiner.add("c");
System.out.println(joiner.toString());//a-null-c
2)String的join方法:
String类提供了static方法join,如下:
List<String> list = Arrays.asList("a",null,"c");
System.out.println(list);//[a, null, c]
String str2 = String.join("-",list);
System.out.println(str2);//a-null-c
3)stream api:
List<String> list = Arrays.asList("a",null,"c");
System.out.println(list);//[a, null, c]
String str4 = list.stream().collect(Collectors.joining("-"));
System.out.println(str4);//a-null-c
2、commons-lang3工具包:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
commons-lang3种StringUtils类提供了join方法,使用如下:
List<String> list = Arrays.asList("a",null,"c");
System.out.println(list);//[a, null, c]
String str1 = StringUtils.join(list, "-");
System.out.println(str1);//a--c
3、guava工具:
guava包中的Joiner类提供了join等方法,用法如下:
List<String> list = Arrays.asList("a",null,"c");
System.out.println(list);//[a, null, c]
String str5 = Joiner.on("-").skipNulls().join(list);
System.out.println(str5);//a-c
注:如果去掉skipNulls()方法,对于集合中有null的情况,会直接报错。