拼接字符串?试试 StringJoiner

简介: 我们通常需要拼接字符串的时候呢,多半都是使用 StringBuffer 或 StingBuilder 进行循环遍历拼接,这样既费时又费力,本次推荐 Java8 中推出的 StringJoiner

1、使用 StringBuffer 拼接字符串

public static void main(String[] args) {
    // 需要拼接的list
    List<String> list = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        list.add("item" + i);
    }
    // 定义
    StringBuffer sb = new StringBuffer();
    for (int j = 0, len = list.size(); j < len; j++) {
        if (j < len - 1) {
            sb.append(list.get(j)).append(",");
        } else {
            sb.append(list.get(j));
        }
    }
    // 输出
    System.out.println(sb.toString());
}

改用 StringJoiner

public static void main(String[] args) {
    // 需要拼接的list
    List<String> list = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        list.add("item" + i);
    }
    // 定义
    StringJoiner sj = new StringJoiner(",");
    for (int j = 0, len = list.size(); j < len; j++) {
        sj.add(list.get(j));
    }
    // 输出
    System.out.println(sj.toString());
}

同样输出内容如下:

item0,item1,item2,item3,item4,item5,item6,item7,item8,item9

代码是不是一下就减少了许多了呢

2、StringJoiner 升级使用

通过观察 StringJoiner 的构造函数,我们还可以自定义字符串的前缀、后缀、拼接符,例如:

public static void main(String[] args) {
    // 需要拼接的list
    List<String> list = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        list.add("item" + i);
    }
    // 定义
    StringJoiner sj = new StringJoiner(",", "【", "】");
    for (int j = 0, len = list.size(); j < len; j++) {
        sj.add(list.get(j));
    }
    // 输出
    System.out.println(sj.toString());
}

输出内容如下:

【item0,item1,item2,item3,item4,item5,item6,item7,item8,item9】

在这样的基础上,我们用来拼接 SQL 语句更简单了,例如 IN 条件后

目录
相关文章
|
6月前
|
JavaScript 前端开发 Java
trim处理是什么,怎样使用
trim处理是什么,怎样使用
|
5月前
|
Java
replaceAll 的用法总结
replaceAll 的用法总结
|
3月前
|
Java 编译器 测试技术
技术分享:为什么 IDEA 建议去掉 StringBuilder,使用 “+” 拼接字符串?
【8月更文挑战第13天】在Java开发过程中,字符串拼接是一个常见的操作。传统上,开发者在处理大量字符串拼接时,往往倾向于使用StringBuilder或StringBuffer类,因为它们比直接使用“+”操作符进行字符串拼接在性能上更优。然而,近年来,随着Java编译器的不断优化,以及开发工具IDEA(IntelliJ IDEA)的建议,我们可能会看到一种趋势:在某些情况下,IDEA建议直接使用“+”来拼接字符串,而不是使用StringBuilder。这一建议背后,隐藏着哪些技术原因和考量呢?
101 5
|
6月前
|
Python
怎么理解python中的拼接字符串和分割字符串
怎么理解python中的拼接字符串和分割字符串
73 0
快速拼接字符串的新类StringJoiner~
快速拼接字符串的新类StringJoiner~
|
Java
java学习第十天笔记-字符串193-stringbuilder基本使用3-拼接字符串
java学习第十天笔记-字符串193-stringbuilder基本使用3-拼接字符串
89 0
java学习第十天笔记-字符串193-stringbuilder基本使用3-拼接字符串
|
人工智能 C#
C# 字符串拼接
除了可以通过加号来拼接字符串之外,我们还可以使用格式化字符串的方法来拼接字符串。中,字符串没有相加的数学运算,但它可以通过加号。是唯一可以用于字符串运算的算数运算符,别的。这样也可以实现字符串的拼接。也可以和复合赋值运算符。
141 0
C# 字符串拼接
JAVA StringBuilder案例(拼接字符串、字符串反转)
JAVA StringBuilder案例(拼接字符串、字符串反转)!
StringBuilder案例:字符串拼接
StringBuilder案例:字符串拼接
144 0
|
搜索推荐 Java 开发者
7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format(上)
7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format(上)
7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format(上)