吉林省建设监理协会网站wordpress二手房
String字符串拼接
- 1.简介
 - 2.StringBuilder
 - 2.1StringBuilder介绍
 - 2.2使用说明
 
- 3.StringBuffer
 - 4.StringJoiner
 - 5.String.Join()
 
1.简介
对于String来说是不可变的,使用+修改字符串是在不断地创建新的字符串对象,而不是在原有的对象上修改的。并且对于字符串的修改和拼接通常提供StringBuffer和StringBuilder,以及使用的String.join()方法,具体如下所示。
2.StringBuilder
2.1StringBuilder介绍
StringBuilder是Java中的一个类,用于处理可变的字符串。它的设计目的是在进行频繁的字符串操作时,避免创建多个不可变的String对象,从而提高字符串的处理效率。StringBuilder类位于java.lang包中,无需额外导入就可以直接使用。
2.2使用说明
- 创建
StringBuilder对象: 
StringBuilder sb = new StringBuilder();
 
- 添加字符串:
 
使用append()方法在StringBuilder末尾添加字符串。
sb.append("Hello");
sb.append(" ");
sb.append("Java");
 
或者使用链式调用:
sb.append("Hello").append(" ").append("Java");
 
- 插入字符串:
 
使用insert()方法在指定位置插入字符串。
sb.insert(6, ”wuhaha“);
 
- 删除字符串:
 
使用delete()方法删除指定范围内的字符串。
sb.delete(6, 15);
 
- 替换字符串:
 
使用replace()方法替换指定范围内的字符串。
sb.replace(0, 5, "Hi");
 
- 反转字符串:
 
使用reverse()方法反转StringBuilder中的内容。
sb.reverse();
 
- 获取字符串:
 
使用toString()方法将StringBuilder转换为一个不可变的String对象。
String result = sb.toString();
 
- 获取当前容量和长度:
 
capacity()方法返回当前StringBuilder的容量(可容纳字符的最大数量)。 length()方法返回当前StringBuilder中实际包含的字符数。
int capacity = sb.capacity();
int length = sb.length();
 
- 设置容量:
 
使用ensureCapacity()方法设置StringBuilder的容量。这样可以提前分配足够的空间,避免频繁地扩容,提高性能。
sb.ensureCapacity(100); // 设置容量为100
 
- 清空
StringBuilder: 
使用setLength()方法将StringBuilder的长度设置为0,清空其中的内容。
sb.setLength(0);
 
StringBuilder是非线程安全的,如果在多线程环境下使用,建议使用StringBuffer类,它与StringBuilder类功能相似,但是线程安全。通常情况下,如果不涉及多线程操作,推荐使用StringBuilder,因为它的性能更好,速度也更快一些。
3.StringBuffer
StringBuffer是Java中用于处理可变字符串的类,它与StringBuilder类似,但是具有线程安全的特性。StringBuffer类位于java.lang包中,无需额外导入就可以直接使用。
以下是StringBuffer的详细使用说明:
-  
创建
StringBuffer对象:StringBuffer sb = new StringBuffer(); -  
添加字符串:
使用
append()方法在StringBuffer末尾添加字符串。sb.append("Hello"); sb.append(" "); sb.append("Java");或者使用链式调用:
sb.append("Hello").append(" ").append("Java"); -  
插入字符串:
使用
insert()方法在指定位置插入字符串。sb.insert(5, " beautiful"); -  
删除字符串:
使用
delete()方法删除指定范围内的字符串。sb.delete(6, 15); -  
替换字符串:
使用
replace()方法替换指定范围内的字符串。sb.replace(0, 5, "Hi"); -  
反转字符串:
使用
reverse()方法反转StringBuffer中的内容。sb.reverse(); -  
获取字符串:
使用
toString()方法将StringBuffer转换为一个不可变的String对象。String result = sb.toString(); -  
获取当前容量和长度:
capacity()方法返回当前StringBuffer的容量(可容纳字符的最大数量)。length()方法返回当前StringBuffer中实际包含的字符数。int capacity = sb.capacity(); int length = sb.length(); -  
设置容量:
使用
ensureCapacity()方法设置StringBuffer的容量。这样可以提前分配足够的空间,避免频繁地扩容,提高性能。sb.ensureCapacity(100); // 设置容量为100 -  
清空
StringBuffer:使用
setLength()方法将StringBuffer的长度设置为0,清空其中的内容。sb.setLength(0); 
StringBuffer是线程安全的,适用于多线程环境下的字符串操作。但是在单线程环境下,如果没有特殊需求,推荐使用StringBuilder,因为它的性能更好。除非确实需要线程安全,否则StringBuilder通常更适合日常使用。
4.StringJoiner
StringJoiner是Java中用于拼接字符串的类,它提供了一种简单的方法来连接多个字符串,并可以在字符串之间添加分隔符。StringJoiner类位于java.util包中,需要导入使用。
以下是StringJoiner的详细使用说明:
-  
创建
StringJoiner对象:构造函数接收两个参数:分隔符(delimiter)和可选的前缀(prefix)和后缀(suffix)。分隔符是必需的,而前缀和后缀是可选的。
StringJoiner sj = new StringJoiner(",", "[", "]");上面的例子表示使用逗号作为分隔符,同时在拼接的结果字符串前后分别添加方括号
[和]。 -  
添加字符串:
使用
add()方法向StringJoiner中添加字符串。sj.add("apple"); sj.add("orange"); sj.add("banana");这将在分隔符之间拼接字符串,并自动处理分隔符的添加。
 -  
获取拼接结果:
使用
toString()方法获取最终的拼接结果。String result = sj.toString();最终的结果将是
"[apple,orange,banana]"。 -  
设置空值替换:
使用
setEmptyValue()方法设置当StringJoiner没有任何元素时返回的默认值。默认情况下,StringJoiner没有任何元素时返回空字符串。sj.setEmptyValue("No fruits"); // 设置默认值为 "No fruits"如果在没有添加任何字符串的情况下调用
toString()方法,将返回设置的默认值。String result = sj.toString(); // 如果没有添加任何元素,将返回 "No fruits" 
StringJoiner类提供了一种简单而灵活的方式来拼接字符串,并可以很方便地在每个字符串之间添加分隔符和前后缀。它特别适合于需要构建带有分隔符的字符串,如CSV文件、JSON数组等。
5.String.Join()
String.join()是Java中String类提供的静态方法,用于将多个字符串按照指定的分隔符连接成一个单一的字符串。String.join()方法在Java 8及更高版本中引入,相比于早期版本中的StringUtils.join()或StringBuffer/StringBuilder的操作,更加简洁和方便。
以下是String.join()的详细使用说明:
-  
使用
String.join():String.join()方法接收两个参数:分隔符(delimiter)和要连接的多个字符串(Iterable、数组等)。String delimiter = ","; String result = String.join(delimiter, "apple", "orange", "banana");上面的例子表示使用逗号作为分隔符,将字符串
"apple"、"orange"和"banana"连接成一个字符串。最终的结果将是"apple,orange,banana"。 -  
使用数组作为参数:
String.join()方法也可以接收一个字符串数组作为参数。String delimiter = "-"; String[] array = {"2019", "08", "31"}; String date = String.join(delimiter, array);上面的例子使用连字符(
-)作为分隔符,将字符串数组array中的元素连接成一个日期字符串。最终的结果将是"2019-08-31"。 -  
使用Iterable作为参数:
String.join()方法还可以接收一个Iterable对象作为参数,例如List、Set等。String delimiter = " "; List<String> words = Arrays.asList("Java", "is", "awesome"); String sentence = String.join(delimiter, words);上面的例子使用空格作为分隔符,将
List对象words中的元素连接成一个句子。最终的结果将是"Java is awesome"。 
String.join()方法非常简单易用,它提供了一种快速拼接字符串的方式,特别适用于需要在多个字符串之间添加分隔符的场景,如拼接CSV数据、构建URL等。
