java常見的字符串拼接方式總結(jié)
+運(yùn)算符拼接
在Java中,可以使用"+"運(yùn)算符來(lái)拼接字符串。當(dāng)一個(gè)字符串與其他數(shù)據(jù)類型(如整數(shù)、浮點(diǎn)數(shù)等)相加時(shí),Java會(huì)自動(dòng)將其他數(shù)據(jù)類型轉(zhuǎn)換為字符串,然后進(jìn)行拼接。
下面是一個(gè)示例代碼:
String str1 = "Hello"; String str2 = "World"; int num = 2021; String result = str1 + " " + str2 + ", " + num; System.out.println(result);
輸出結(jié)果為:
Hello World, 2021
在上面的代碼中,使用"+"運(yùn)算符將字符串str1、空格、字符串str2、逗號(hào)和整數(shù)num拼接在一起,并將結(jié)果賦給變量result。然后使用System.out.println()方法將結(jié)果輸出到控制臺(tái)。
StringBuilder.append()和StringBuffer.append()
StringBuilder.append()
和StringBuffer.append()
都是用于字符串拼接的方法,它們的作用是將指定的字符串追加到當(dāng)前字符串的末尾。
主要區(qū)別在于StringBuilder
是非線程安全的,而StringBuffer
是線程安全的。
StringBuilder
:StringBuilder
是在Java 5中引入的,它的設(shè)計(jì)目的是為了提供一個(gè)高效的可變字符串操作類。由于StringBuilder
是非線程安全的,所以在單線程環(huán)境下使用StringBuilder
的效率更高。StringBuffer
:StringBuffer
是在早期版本的Java中引入的,它與StringBuilder
的功能相似,但是StringBuffer
是線程安全的,可以在多線程環(huán)境下使用。
因此,如果在單線程環(huán)境下進(jìn)行字符串拼接操作,建議使用StringBuilder
,而在多線程環(huán)境下進(jìn)行字符串拼接操作,建議使用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
,因?yàn)樗男阅芨?。只有在多線程環(huán)境下需要保證線程安全時(shí),才使用StringBuffer
。
String的concat()方法
concat()
方法是String
類中的一個(gè)方法,用于將指定的字符串連接到原字符串的末尾,并返回一個(gè)新的字符串。它的語(yǔ)法如下:
public String concat(String str)
其中,str
是要連接的字符串。調(diào)用concat()
方法后,會(huì)將str
連接到原字符串的末尾,并返回一個(gè)新的字符串。
例如,假設(shè)有一個(gè)字符串str1
為"Hello",要將字符串" World"連接到str1
的末尾,可以使用concat()
方法:
String str1 = "Hello"; String str2 = str1.concat(" World"); System.out.println(str2); // 輸出:Hello World
注意,concat()
方法不會(huì)修改原字符串,而是返回一個(gè)新的字符串。如果需要修改原字符串,可以將返回值賦給原字符串。如果拼接的字符串是一個(gè)空字符串(""),那么concat的效率要更高。如果拼接的字符串非常多,concat的效率就會(huì)下降,因?yàn)閯?chuàng)建的字符串對(duì)象多開銷大。
concat()
方法可以用于連接任意數(shù)量的字符串,只需要連續(xù)調(diào)用concat()
方法即可。例如:
String str1 = "Hello"; String str2 = str1.concat(" World").concat("!"); System.out.println(str2); // 輸出:Hello World!
以上就是String
類中的concat()
方法的用法。
注意如果拼接的字符串是null,concat會(huì)拋出NullPointerException。
String的join()方法
JDK1.8 String類增加了一個(gè)靜態(tài)方法join String
類的join()
方法用于將多個(gè)字符串連接成一個(gè)字符串,可以指定連接符。
方法:
public static String join(CharSequence delimiter, CharSequence... elements)
參數(shù)說(shuō)明:
delimiter
:連接符,用于將多個(gè)字符串連接起來(lái)。elements
:要連接的多個(gè)字符串。
示例代碼:
String[] words = {"Hello", "World", "!"}; String result = String.join(" ", words); System.out.println(result);
輸出結(jié)果:
Hello World !
在上述示例中,使用空格作為連接符,將數(shù)組words
中的字符串連接成一個(gè)字符串。
StringJoiner
StringJoiner
是JDK1.8,java.util包中的一個(gè)類,用于將多個(gè)字符串連接成一個(gè)字符串。它提供了一種簡(jiǎn)單的方式來(lái)構(gòu)建以指定分隔符分隔的字符串。
使用StringJoiner
的基本步驟如下:
- 創(chuàng)建一個(gè)
StringJoiner
對(duì)象,可以指定分隔符和可選的前綴和后綴。 - 使用
add
方法將要連接的字符串逐個(gè)添加到StringJoiner
中。 - 使用
toString
方法獲取最終的連接字符串。
以下是一個(gè)示例代碼:
StringJoiner joiner = new StringJoiner(", ", "[", "]"); joiner.add("apple"); joiner.add("banana"); joiner.add("orange"); String result = joiner.toString(); System.out.println(result);
輸出結(jié)果為:[apple, banana, orange]
使用StringJoiner
可以方便地將多個(gè)字符串連接成一個(gè)字符串,并且可以指定分隔符和前綴后綴,非常適用于構(gòu)建CSV文件、SQL語(yǔ)句等場(chǎng)景。
apache的StringUtils.join()
StringUtils.join()
是Apache Commons Lang庫(kù)中的一個(gè)方法,用于將一個(gè)數(shù)組或集合中的元素連接成一個(gè)字符串。
使用方法如下:
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()
方法接受兩個(gè)參數(shù):要連接的數(shù)組或集合,以及連接元素之間的分隔符。在上述例子中,我們使用了逗號(hào)和空格作為分隔符。
如果要連接的數(shù)組或集合中包含了null
元素,StringUtils.join()
方法會(huì)將其忽略。如果要連接的數(shù)組或集合為null
或空,方法會(huì)返回一個(gè)空字符串。
以上就是java常見的字符串拼接方式總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于java字符串拼接的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot實(shí)現(xiàn)配置文件加密的方案分享
項(xiàng)目的數(shù)據(jù)庫(kù)密碼、redis 密碼等明文展示在配置文件中會(huì)有潛在的風(fēng)險(xiǎn),因此采用合適的安全防護(hù)措施是有必要的,下面小編就為大家介紹一下SpringBoot中配置文件加密的方法,希望對(duì)大家有所幫助2023-11-11總結(jié)Java中線程的狀態(tài)及多線程的實(shí)現(xiàn)方式
Java中可以通過(guò)Thread類和Runnable接口來(lái)創(chuàng)建多個(gè)線程,線程擁有五種狀態(tài),下面我們就來(lái)簡(jiǎn)單總結(jié)Java中線程的狀態(tài)及多線程的實(shí)現(xiàn)方式:2016-07-07在idea中將創(chuàng)建的java web項(xiàng)目部署到Tomcat中的過(guò)程圖文詳解
這篇文章主要介紹了在idea中將創(chuàng)建的java web項(xiàng)目部署到Tomcat中的過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04java實(shí)現(xiàn)簡(jiǎn)單撲克牌游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單撲克牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09Java使用BIO和NIO進(jìn)行文件操作對(duì)比代碼示例
這篇文章主要介紹了Java使用BIO和NIO進(jìn)行文件操作對(duì)比代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05