java常见的字符串拼接方式总结
作者:Raysen
+运算符拼接
在Java中,可以使用"+"运算符来拼接字符串。当一个字符串与其他数据类型(如整数、浮点数等)相加时,Java会自动将其他数据类型转换为字符串,然后进行拼接。
下面是一个示例代码:
String str1 = "Hello"; String str2 = "World"; int num = 2021; String result = str1 + " " + str2 + ", " + num; System.out.println(result);
输出结果为:
Hello World, 2021
在上面的代码中,使用"+"运算符将字符串str1、空格、字符串str2、逗号和整数num拼接在一起,并将结果赋给变量result。然后使用System.out.println()方法将结果输出到控制台。
StringBuilder.append()和StringBuffer.append()
StringBuilder.append()
和StringBuffer.append()
都是用于字符串拼接的方法,它们的作用是将指定的字符串追加到当前字符串的末尾。
主要区别在于StringBuilder
是非线程安全的,而StringBuffer
是线程安全的。
StringBuilder
:StringBuilder
是在Java 5中引入的,它的设计目的是为了提供一个高效的可变字符串操作类。由于StringBuilder
是非线程安全的,所以在单线程环境下使用StringBuilder
的效率更高。StringBuffer
:StringBuffer
是在早期版本的Java中引入的,它与StringBuilder
的功能相似,但是StringBuffer
是线程安全的,可以在多线程环境下使用。
因此,如果在单线程环境下进行字符串拼接操作,建议使用StringBuilder
,而在多线程环境下进行字符串拼接操作,建议使用StringBuffer
。
示例代码:
StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.append(" "); sb.append("World"); String result = sb.toString(); // "Hello World" StringBuffer sbf = new StringBuffer(); sbf.append("Hello"); sbf.append(" "); sbf.append("World"); String result = sbf.toString(); // "Hello World"
注意:在大部分情况下,推荐使用StringBuilder
,因为它的性能更好。只有在多线程环境下需要保证线程安全时,才使用StringBuffer
。
String的concat()方法
concat()
方法是String
类中的一个方法,用于将指定的字符串连接到原字符串的末尾,并返回一个新的字符串。它的语法如下:
public String concat(String str)
其中,str
是要连接的字符串。调用concat()
方法后,会将str
连接到原字符串的末尾,并返回一个新的字符串。
例如,假设有一个字符串str1
为"Hello",要将字符串" World"连接到str1
的末尾,可以使用concat()
方法:
String str1 = "Hello"; String str2 = str1.concat(" World"); System.out.println(str2); // 输出:Hello World
注意,concat()
方法不会修改原字符串,而是返回一个新的字符串。如果需要修改原字符串,可以将返回值赋给原字符串。如果拼接的字符串是一个空字符串(""),那么concat的效率要更高。如果拼接的字符串非常多,concat的效率就会下降,因为创建的字符串对象多开销大。
concat()
方法可以用于连接任意数量的字符串,只需要连续调用concat()
方法即可。例如:
String str1 = "Hello"; String str2 = str1.concat(" World").concat("!"); System.out.println(str2); // 输出:Hello World!
以上就是String
类中的concat()
方法的用法。
注意如果拼接的字符串是null,concat会抛出NullPointerException。
String的join()方法
JDK1.8 String类增加了一个静态方法join String
类的join()
方法用于将多个字符串连接成一个字符串,可以指定连接符。
方法:
public static String join(CharSequence delimiter, CharSequence... elements)
参数说明:
delimiter
:连接符,用于将多个字符串连接起来。elements
:要连接的多个字符串。
示例代码:
String[] words = {"Hello", "World", "!"}; String result = String.join(" ", words); System.out.println(result);
输出结果:
Hello World !
在上述示例中,使用空格作为连接符,将数组words
中的字符串连接成一个字符串。
StringJoiner
StringJoiner
是JDK1.8,java.util包中的一个类,用于将多个字符串连接成一个字符串。它提供了一种简单的方式来构建以指定分隔符分隔的字符串。
使用StringJoiner
的基本步骤如下:
- 创建一个
StringJoiner
对象,可以指定分隔符和可选的前缀和后缀。 - 使用
add
方法将要连接的字符串逐个添加到StringJoiner
中。 - 使用
toString
方法获取最终的连接字符串。
以下是一个示例代码:
StringJoiner joiner = new StringJoiner(", ", "[", "]"); joiner.add("apple"); joiner.add("banana"); joiner.add("orange"); String result = joiner.toString(); System.out.println(result);
输出结果为:[apple, banana, orange]
使用StringJoiner
可以方便地将多个字符串连接成一个字符串,并且可以指定分隔符和前缀后缀,非常适用于构建CSV文件、SQL语句等场景。
apache的StringUtils.join()
StringUtils.join()
是Apache Commons Lang库中的一个方法,用于将一个数组或集合中的元素连接成一个字符串。
使用方法如下:
import org.apache.commons.lang3.StringUtils; public class Example { public static void main(String[] args) { String[] array = {"apple", "banana", "orange"}; String result = StringUtils.join(array, ", "); System.out.println(result); } }
上述代码将输出:apple, banana, orange
StringUtils.join()
方法接受两个参数:要连接的数组或集合,以及连接元素之间的分隔符。在上述例子中,我们使用了逗号和空格作为分隔符。
如果要连接的数组或集合中包含了null
元素,StringUtils.join()
方法会将其忽略。如果要连接的数组或集合为null
或空,方法会返回一个空字符串。
以上就是java常见的字符串拼接方式总结的详细内容,更多关于java字符串拼接的资料请关注脚本之家其它相关文章!