我们在使用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)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
<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
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的情况,会直接报错。