---------------------作为上篇文章的延申--------------------
Java将集合List转换成String字符串(或String转换成List)_集合转string-CSDN博客
在Java中,连接字符串是一种常见的需求。在Java 8之后,我们有了String.join()
这个简洁的方法,而在使用Apache Commons Lang库时,我们则可以使用StringUtils.join()
。
这两个方法都可以实现字符串的连接,但它们之间存在一些重要的差异。本文将详细介绍这两个方法,并比较它们的特性和用法。(文章最后有实际运用的区别,也可直接跳转查看👇)
1. String.join()
特性:
- 是Java 8及之后版本的标准方法,内置在String类中。
- 简洁,易于使用。
- 使用逗号或其他指定的分隔符作为默认的连接符。
用法:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
String result = String.join(",", names);
// 结果是 "Alice,Bob,Charlie"
注意点:
- 不支持前缀和后缀的添加。
- 仅提供基本的字符串连接功能。
2. StringUtils.join()
特性:
- 来自Apache Commons Lang库。
- 提供了更多的灵活性,例如可以指定连接符和前缀/后缀。
- 当需要更复杂的字符串操作时,它是非常有用的。
用法:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
String result = StringUtils.join(names, ",");
// 结果是 "Alice,Bob,Charlie"
或者使用前缀和后缀:
String result = StringUtils.join(names, ",", "[", "]");
// 结果是 "[Alice,Bob,Charlie]"
注意点:
- 需要引入Apache Commons Lang库才能使用。
- 提供了更多的功能,如前缀、后缀和自定义分隔符,适合复杂场景。
总结区别:
//这里的 list.getWorkingFrequency() 是一个工作频率的集合
// 但是因业务需求,不一定为字符串类型,所以设置为List<Object>
List<Object> workingFrequency = Arrays.asList(list.getWorkingFrequency());
String workingFrequencyStr = StringUtils.join(workingFrequency, " ");
如果作为上述需求,此时还是用String..join() 代码就会报错,因为:
StringUtils.join() 可以传入 数字 或者其他类型的集合或数组
String.join() 仅可以传入实现 charSequence 接口类型的集合或数组。
因此 -- 如果是字符串类型的集合或数组建议使用 String.join()
-- 其他类型建议使用 StringUtils.join()。