目录
你也许遇到过将数组或集合以某“,”、“-”、“.”等拼接字符拼接成新的字符串的需求,拼接后的字符串将会是这样 a,b,c 或者 a-b-c 或者 a.b.c 等。
你可能会想遍历拼接,去除掉最后一个拼接字符。
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));
StringBuilder stringBuilder = new StringBuilder();
for (String s : list) {
stringBuilder.append(s + ",");
}
System.out.println(stringBuilder.substring(0, stringBuilder.length() - 1));
}
或者会想着先遍历,数组的最后一个元素单独处理。
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < list.size() -1 ;i ++) {
stringBuilder.append(list.get(i) + ",");
}
System.out.println(stringBuilder.append(list.get(list.size() - 1)).toString());
}
以上两种方法要么处理最后一个拼接的特殊字符、要么需要对最后一个字符单独处理,都不是特别优雅,那咱这块有没有优雅的实现方式呢。别说,还真有两种实现方式。
StringUtils.join() 实现
pom依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
api说明
代码实现
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));
System.out.println(StringUtils.join(list, ","));
}
String.join() 实现
pom依赖
String.join() 是 JDK8 新增方法,不需要引入外部依赖。
api说明
代码实现
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));
System.out.println(String.join(",", list));
}
StringUtils.join 和 String.join() 两者都是一行代码就搞定了,是不是很优雅呢?
两种实现方式对比
参数顺序:StringUtils.join() 第一个参数是数组或者集合,第二个参数是拼接字符;String.join() 第一个参数是拼接字符,第二个参数数组或者集合。
参数范围:StringUtils.join() 可以传入 Integer 或者其他类型的集合或数组; String.join() 尽可以传入实现 charSequence 接口类型的集合或数组。
对比总结:如果是字符串类型的集合或数组建议使用 String.join(),其他类型建议使用 StringUtils.join()。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/9502.html