Java中超高頻常見(jiàn)字符操作合集(建議收藏)
1. 字符串拼接
1. 使用 + 操作符:
String str1 = "Hello"; String str2 = ", "; String str3 = "World"; String result = str1 + str2 + str3;
這種方法是最簡(jiǎn)單的,通過(guò)使用 + 操作符可以將多個(gè)字符串連接在一起。Java會(huì)自動(dòng)處理字符串拼接并創(chuàng)建一個(gè)新的字符串對(duì)象。
2. 使用 concat() 方法:
String str1 = "Hello"; String str2 = ", "; String str3 = "World"; ???????String result = str1.concat(str2).concat(str3);
concat() 方法用于將一個(gè)字符串連接到另一個(gè)字符串的末尾??梢赃B續(xù)調(diào)用 concat() 方法來(lái)連接多個(gè)字符串。
3. 使用 StringBuilder 類:
StringBuilder 是一個(gè)可變的字符串類,適用于需要頻繁修改字符串的情況,因?yàn)樗粫?huì)創(chuàng)建多個(gè)中間字符串對(duì)象,從而提高了性能。
StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("Hello"); stringBuilder.append(", "); stringBuilder.append("World"); ???????String result = stringBuilder.toString();
在這種情況下,我們首先創(chuàng)建一個(gè) StringBuilder 對(duì)象,然后使用 append() 方法來(lái)添加需要拼接的字符串,最后通過(guò) toString() 方法將 StringBuilder 轉(zhuǎn)換為不可變的 String。
4. 使用 StringBuffer 類:
StringBuffer 類與 StringBuilder 類 類似,但是是線程安全的,適用于多線程環(huán)境。
StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("Hello"); stringBuffer.append(", "); stringBuffer.append("World"); ???????String result = stringBuffer.toString();
與 StringBuilder 一樣,我們可以使用 append() 方法來(lái)構(gòu)建最終的字符串,然后通過(guò) toString() 方法獲取不可變的 String。
5. 使用 String.join() 方法(Java 8+):
這種方法更加簡(jiǎn)潔,特別適用于將多個(gè)字符串與指定的分隔符連接起來(lái)的情況。
String.join() String str1 = "Hello"; String str2 = ", "; String str3 = "World"; ???????String result = String.join(str2, str1, str3);
2. 字符串查找
1.使用 indexOf() 方法查找子字符串的位置:
indexOf() 方法用于查找一個(gè)字符串是否包含另一個(gè)子字符串,并返回第一次出現(xiàn)的位置索引。如果未找到,它將返回 -1。
String mainString = "Hello, World!"; String subString = "World"; int position = mainString.indexOf(subString); ???????if (position != -1) { System.out.println("子字符串在主字符串中的位置是:" + position); } else { System.out.println("子字符串未找到!"); }
2.使用 lastIndexOf() 方法查找最后一次出現(xiàn)的位置:
lastIndexOf() 方法與 indexOf() 方法類似,但它返回最后一次出現(xiàn)的位置索引。
String mainString = "Java is a powerful programming language. Java is also fun!"; String subString = "Java"; int position = mainString.lastIndexOf(subString); ???????if (position != -1) { System.out.println("最后一次出現(xiàn)的位置是:" + position); } else { System.out.println("子字符串未找到!"); }
3.使用 contains() 方法檢查字符串是否包含子字符串:
contains() 方法用于檢查一個(gè)字符串是否包含另一個(gè)子字符串,它返回一個(gè)布爾值。
String mainString = "This is a Java example."; String subString = "Java"; boolean contains = mainString.contains(subString); if (contains) { System.out.println("主字符串包含子字符串!"); } else { System.out.println("主字符串不包含子字符串!"); }
4.使用正則表達(dá)式進(jìn)行高級(jí)搜索:
Java 也支持使用正則表達(dá)式來(lái)進(jìn)行復(fù)雜的字符串搜索。你可以使用 Pattern 和 Matcher 類來(lái)實(shí)現(xiàn)這一點(diǎn)。這允許你執(zhí)行更復(fù)雜的模式匹配操作。
import java.util.regex.*; String text = "The quick brown fox jumps over the lazy dog."; String pattern = "fox"; Pattern compiledPattern = Pattern.compile(pattern); Matcher matcher = compiledPattern.matcher(text); while (matcher.find()) { System.out.println("找到匹配字符串: " + matcher.group()); }
3. 字符串截取
1.使用 substring() 方法:
substring() 方法用于從一個(gè)字符串中截取子串,你可以指定截取的起始位置和結(jié)束位置。這個(gè)方法有兩種形式:一種只傳入起始位置,另一種傳入起始位置和結(jié)束位置。
String mainString = "Hello, World!"; // 截取從索引2到索引5之間的子串(包括索引2,但不包括索引5) String subString1 = mainString.substring(2, 5); System.out.println("截取子串1: " + subString1); // 輸出 "llo" // 從索引7開(kāi)始截取到字符串末尾 String subString2 = mainString.substring(7); System.out.println("截取子串2: " + subString2); // 輸出 "World!"
2.使用 split() 方法分割字符串:
split() 方法允許你根據(jù)某個(gè)分隔符將字符串拆分為子串,然后選擇需要的子串。
String text = "apple,banana,grape"; // 使用逗號(hào)作為分隔符拆分字符串 String[] fruits = text.split(","); for (String fruit : fruits) { System.out.println("水果: " + fruit); }
3.使用正則表達(dá)式進(jìn)行高級(jí)截?。?/p>
Java 的正則表達(dá)式庫(kù)允許你根據(jù)復(fù)雜的模式來(lái)截取字符串。
import java.util.regex.*; String text = "The quick brown fox jumps over the lazy dog."; String pattern = "\\b\\w+\\b"; // 匹配單詞 Pattern compiledPattern = Pattern.compile(pattern); Matcher matcher = compiledPattern.matcher(text); while (matcher.find()) { System.out.println("匹配到的單詞: " + matcher.group()); }
4. 字符串替換
1.使用 replace() 方法:
replace() 方法用于將指定的字符或子字符串替換為新的字符或子字符串。
String originalString = "Hello, World!"; String searchString = "World"; String replacementString = "Java"; String modifiedString = originalString.replace(searchString, replacementString); System.out.println("替換后的字符串: " + modifiedString);
輸出:
替換后的字符串: Hello, Java!
2.使用 replaceAll() 方法進(jìn)行正則表達(dá)式替換:
replaceAll() 方法允許你使用正則表達(dá)式進(jìn)行更靈活的替換操作。
String originalString = "The quick brown fox jumps over the lazy dog."; String pattern = "fox"; String replacementString = "cat"; String modifiedString = originalString.replaceAll(pattern, replacementString); System.out.println("替換后的字符串: " + modifiedString);
輸出:
替換后的字符串: The quick brown cat jumps over the lazy dog.
3.使用 StringBuilder 進(jìn)行替換:
如果需要進(jìn)行多次替換或性能要求較高,可以使用 StringBuilder 類。
StringBuilder stringBuilder = new StringBuilder("Java is easy. Java is fun."); String searchString = "Java"; String replacementString = "Python"; int index = stringBuilder.indexOf(searchString); while (index != -1) { stringBuilder.replace(index, index + searchString.length(), replacementString); index = stringBuilder.indexOf(searchString); } String modifiedString = stringBuilder.toString(); System.out.println("替換后的字符串: " + modifiedString);
輸出:
替換后的字符串: Python is easy. Python is fun.
5. 字符串分割
1. 使用 split() 方法:
split() 方法是Java中最常用的字符串分割方法。它使用指定的正則表達(dá)式作為分隔符,將字符串分割成一個(gè)字符串?dāng)?shù)組。
String inputString = "apple,orange,banana,grape"; String[] fruits = inputString.split(","); ???????System.out.println("分割后的水果:"); for (String fruit : fruits) { System.out.println(fruit); }
輸出:
分割后的水果:
apple
orange
banana
grape
2. 使用 StringTokenizer 類:
StringTokenizer 類是Java中另一種進(jìn)行字符串分割的方式,它使用指定的分隔符將字符串分割成標(biāo)記。
String inputString = "Java is a powerful programming language"; StringTokenizer tokenizer = new StringTokenizer(inputString); System.out.println("分割后的單詞:"); while (tokenizer.hasMoreTokens()) { System.out.println(tokenizer.nextToken()); }
輸出:
分割后的單詞:
Java
is
a
powerful
programming
language
3. 使用正則表達(dá)式:
你也可以使用正則表達(dá)式作為分隔符,以實(shí)現(xiàn)更靈活的字符串分割。
String inputString = "Java123is456a789powerful"; String[] parts = inputString.split("\\d+"); System.out.println("分割后的部分:"); for (String part : parts) { System.out.println(part); }
輸出:
分割后的部分:
Java
is
a
powerful
4. 使用 Apache Commons Lang 庫(kù):
Apache Commons Lang 庫(kù)提供了 StringUtils 類,其中有一個(gè)方便的 split() 方法,可以更容易地處理字符串分割。
import org.apache.commons.lang3.StringUtils; String inputString = "Java;C;C++;Python"; String[] languages = StringUtils.split(inputString, ';'); System.out.println("分割后的編程語(yǔ)言:"); for (String language : languages) { System.out.println(language); }
輸出:
分割后的編程語(yǔ)言:
Java
C
C++
Python
6. 字符串比較
1. 使用 equals() 方法進(jìn)行內(nèi)容比較:
equals() 方法用于比較兩個(gè)字符串的內(nèi)容是否相同。它比較字符串的每個(gè)字符,而不僅僅是比較引用是否相等。
String str1 = "Hello"; String str2 = "World"; String str3 = "Hello"; boolean isEqual1 = str1.equals(str2); // 返回 false boolean isEqual2 = str1.equals(str3); // 返回 true System.out.println("str1 和 str2 是否相等:" + isEqual1); System.out.println("str1 和 str3 是否相等:" + isEqual2);
2. 使用 equalsIgnoreCase() 方法進(jìn)行忽略大小寫(xiě)的內(nèi)容比較:
equalsIgnoreCase() 方法與 equals() 方法類似,但它會(huì)忽略字符串的大小寫(xiě)。
String str1 = "Hello"; String str2 = "hello"; ???????boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 返回 true System.out.println("str1 和 str2 是否相等(忽略大小寫(xiě)):" + isEqualIgnoreCase);
3. 使用 compareTo() 方法進(jìn)行字典順序比較:
compareTo() 方法用于比較兩個(gè)字符串的字典順序。它返回一個(gè)整數(shù),表示兩個(gè)字符串之間的比較結(jié)果。
String str1 = "apple"; String str2 = "banana"; String str3 = "cherry"; int result1 = str1.compareTo(str2); // 返回負(fù)數(shù) int result2 = str2.compareTo(str1); // 返回正數(shù) int result3 = str1.compareTo(str3); // 返回負(fù)數(shù) System.out.println("str1 和 str2 的比較結(jié)果:" + result1); System.out.println("str2 和 str1 的比較結(jié)果:" + result2); System.out.println("str1 和 str3 的比較結(jié)果:" + result3);
4. 使用 startsWith() 和 endsWith() 方法檢查前綴和后綴:
startsWith() 方法用于檢查字符串是否以指定的前綴開(kāi)頭,而 endsWith() 方法用于檢查字符串是否以指定的后綴結(jié)尾。
String str = "Hello, World"; boolean startsWithHello = str.startsWith("Hello"); // 返回 true boolean endsWithWorld = str.endsWith("World"); // 返回 false System.out.println("字符串是否以 Hello 開(kāi)頭:" + startsWithHello); System.out.println("字符串是否以 World 結(jié)尾:" + endsWithWorld);
5. 使用 compareToIgnoreCase() 方法進(jìn)行忽略大小寫(xiě)的字典順序比較:
compareToIgnoreCase() 方法與 compareTo() 方法類似,但它會(huì)忽略字符串的大小寫(xiě)。
String str1 = "apple"; String str2 = "Banana"; int result = str1.compareToIgnoreCase(str2); // 返回正數(shù) System.out.println("str1 和 str2 的比較結(jié)果(忽略大小寫(xiě)):" + result);
7. 字符串格式化
1. 使用 String.format()
String.format() 方法允許您創(chuàng)建格式化的字符串,類似于C語(yǔ)言中的 printf() 函數(shù)。它使用占位符來(lái)指定要插入的數(shù)據(jù)以及它們的格式。占位符由百分號(hào) (%) 后跟一個(gè)字符組成,該字符表示插入數(shù)據(jù)的類型。以下是一些常見(jiàn)的占位符及其用法:
- %s :字符串。
- %d :整數(shù)。
- %f :浮點(diǎn)數(shù)。
- %n :換行符。
示例:
String name = "Alice"; int age = 30; double salary = 50000.50; ???????String formattedString = String.format("Name: %s, Age: %d, Salary: %.2f", name, age, salary); System.out.println(formattedString);
輸出:
Name: Alice, Age: 30, Salary: 50000.50
在上面的示例中,我們使用了 %s 、 %d 和 %.2f 占位符來(lái)插入字符串、整數(shù)和浮點(diǎn)數(shù),并指定了浮點(diǎn)數(shù)保留兩位小數(shù)。
2. 使用 printf()
printf() 方法是 System.out 對(duì)象的一個(gè)方法,它用于將格式化的字符串輸出到控制臺(tái)。與 String.format() 類似,它使用相同的占位符來(lái)格式化輸出。
示例:
String name = "Bob"; int age = 25; double height = 1.75; System.out.printf("Name: %s, Age: %d, Height: %.2f%n", name, age, height);
輸出:
Name: Bob, Age: 25, Height: 1.75
8. 字符串空格處理
1. 刪除空格:
.使用 String 類的 trim() 方法刪除字符串前后的空格。
trim() 返回一個(gè)新的字符串,其中刪除了前導(dǎo)和尾隨的空格。
String text = " This is a text with spaces "; String trimmedText = text.trim(); System.out.println(trimmedText); // 輸出: "This is a text with spaces"
2. 替換空格:
使用 String 類的 replace() 方法替換字符串中的空格。
你可以將空格替換為其他字符或字符串。
String text = "Hello, World!"; String replacedText = text.replace(" ", "_"); System.out.println(replacedText); // 輸出: "Hello,_World!"
3. 分割字符串:
使用 split() 方法將字符串拆分成字符串?dāng)?shù)組。
默認(rèn)情況下,split() 使用空格作為分隔符,但你可以指定自定義分隔符。
String sentence = "This is a sample sentence"; String[] words = sentence.split(" "); // 使用空格分割成單詞數(shù)組
4. 檢查空格:
使用 contains() 方法檢查字符串是否包含空格。
String text = "This has spaces"; boolean hasSpaces = text.contains(" "); // 返回 true
5. 統(tǒng)計(jì)空格的數(shù)量:
使用循環(huán)遍歷字符串并計(jì)算空格的數(shù)量。
String text = "Count the spaces in this text"; int spaceCount = 0; for (char c : text.toCharArray()) { if (c == ' ') { spaceCount++; } } System.out.println("空格數(shù)量:" + spaceCount); // 輸出: "空格數(shù)量:5"
6. 替換多個(gè)連續(xù)空格:
使用正則表達(dá)式來(lái)替換連續(xù)的多個(gè)空格為單個(gè)空格。
String text = "Replace multiple spaces with one."; String replacedText = text.replaceAll("\\s+", " "); System.out.println(replacedText); // 輸出: "Replace multiple spaces with one."
7. 處理制表符和換行符:
空白字符不僅包括空格,還包括制表符 (\t) 和換行符 (\n) 等。
你可以使用 replaceAll() 來(lái)處理它們,就像處理空格一樣。
String textWithTabs = "This\tis\ta\ttab\tseparated\ttext"; String textWithNewlines = "This\nis\na\nnewline\nseparated\ntext";
以上就是Java中超高頻常見(jiàn)字符操作合集(建議收藏)的詳細(xì)內(nèi)容,更多關(guān)于Java字符操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java學(xué)習(xí)基礎(chǔ)之安裝JDK/配置JDK環(huán)境&IEDA工具安裝
這篇文章主要介紹了Java學(xué)習(xí)基礎(chǔ)系列文章的第一篇,主要內(nèi)容是安裝JDK/配置JDK環(huán)境&IEDA工具安裝的相關(guān)資料,需要的朋友可以參考下2020-02-02JavaApi實(shí)現(xiàn)更新刪除及讀取節(jié)點(diǎn)
這篇文章主要介紹了JavaApi實(shí)現(xiàn)更新刪除及讀取節(jié)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05關(guān)于JAVA經(jīng)典算法40題(超實(shí)用版)
本篇文章小編為大家介紹一下,關(guān)于JAVA經(jīng)典算法40題(超實(shí)用版),有需要的朋友可以參考一下2013-04-04Spring使用@Async出現(xiàn)循環(huán)依賴原因及解決方案分析
在Spring框架中,啟用異步功能需要在應(yīng)用主類上添加@EnableAsync注解,當(dāng)項(xiàng)目中存在循環(huán)引用時(shí),如一個(gè)異步類MessageService和一個(gè)常規(guī)類TaskService相互引用,并且這兩個(gè)類位于同一包內(nèi),這種情況下可能會(huì)觸發(fā)Spring的循環(huán)依賴異常2024-10-10Java Apollo是如何實(shí)現(xiàn)配置更新的
這篇文章主要介紹了Java Apollo是如何實(shí)現(xiàn)配置更新的,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03Java每隔兩個(gè)數(shù)刪掉一個(gè)數(shù)問(wèn)題詳解
這篇文章主要介紹了Java每隔兩個(gè)數(shù)刪掉一個(gè)數(shù)問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04面試初級(jí)Java開(kāi)發(fā)問(wèn)到Arrays
這篇文章主要介紹了Java Arrays工具類用法,結(jié)合實(shí)例形式分析了java Arrays工具類針對(duì)數(shù)組元素修改、復(fù)制、排序等操作使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2021-07-07