欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java字符串所有操作方法匯總

 更新時(shí)間:2023年11月04日 17:14:24   投稿:yin  
這篇文章主要介紹了java字符串所有操作方法匯總,需要的朋友可以參考下,在實(shí)際的編程中,我們經(jīng)常需要對(duì)字符串進(jìn)行各種操作,例如連接、截取、替換等,本文將按類別介紹一些Java字符串的常用方法,幫助讀者更好地理解和使用

1. 字符串拼接

1. 使用 + 操作符:

String str1 = "Hello";
String str2 = ", ";
String str3 = "World";

String result = str1 + str2 + str3;

這種方法是最簡(jiǎn)單的,通過使用 + 操作符可以將多個(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() 方法來連接多個(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() 方法來添加需要拼接的字符串,最后通過 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() 方法來構(gòu)建最終的字符串,然后通過 toString() 方法獲取不可變的 String。

5. 使用 String.join() 方法(Java 8+):

這種方法更加簡(jiǎn)潔,特別適用于將多個(gè)字符串與指定的分隔符連接起來的情況。

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á)式來進(jìn)行復(fù)雜的字符串搜索。你可以使用 PatternMatcher 類來實(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開始截取到字符串末尾
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í)截取:

Java 的正則表達(dá)式庫(kù)允許你根據(jù)復(fù)雜的模式來截取字符串。

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("分割后的編程語言:");
for (String language : languages) {
     System.out.println(language);
}

輸出:

分割后的編程語言:
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)行忽略大小寫的內(nèi)容比較:

equalsIgnoreCase() 方法與 equals() 方法類似,但它會(huì)忽略字符串的大小寫。

String str1 = "Hello";
String str2 = "hello";

boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 返回 true

System.out.println("str1 和 str2 是否相等(忽略大小寫):" + 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() 方法用于檢查字符串是否以指定的前綴開頭,而 endsWith() 方法用于檢查字符串是否以指定的后綴結(jié)尾。

String str = "Hello, World";

boolean startsWithHello = str.startsWith("Hello"); // 返回 true
boolean endsWithWorld = str.endsWith("World");     // 返回 false

System.out.println("字符串是否以 Hello 開頭:" + startsWithHello);
System.out.println("字符串是否以 World 結(jié)尾:" + endsWithWorld);

5. 使用 compareToIgnoreCase() 方法進(jìn)行忽略大小寫的字典順序比較:

compareToIgnoreCase() 方法與 compareTo() 方法類似,但它會(huì)忽略字符串的大小寫。

String str1 = "apple";
String str2 = "Banana";

int result = str1.compareToIgnoreCase(str2); // 返回正數(shù)

System.out.println("str1 和 str2 的比較結(jié)果(忽略大小寫):" + result);

7. 字符串格式化

1. 使用 String.format()

String.format() 方法允許您創(chuàng)建格式化的字符串,類似于C語言中的 printf() 函數(shù)。它使用占位符來指定要插入的數(shù)據(jù)以及它們的格式。占位符由百分號(hào) (%) 后跟一個(gè)字符組成,該字符表示插入數(shù)據(jù)的類型。以下是一些常見的占位符及其用法:

  • %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 占位符來插入字符串、整數(shù)和浮點(diǎn)數(shù),并指定了浮點(diǎn)數(shù)保留兩位小數(shù)。

2. 使用 printf()

printf() 方法是 System.out 對(duì)象的一個(gè)方法,它用于將格式化的字符串輸出到控制臺(tái)。與 String.format() 類似,它使用相同的占位符來格式化輸出。

示例:

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á)式來替換連續(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() 來處理它們,就像處理空格一樣。
String textWithTabs = "This\tis\ta\ttab\tseparated\ttext";
String textWithNewlines = "This\nis\na\nnewline\nseparated\ntext";

總結(jié)

到此這篇關(guān)于java字符串所有操作方法匯總的文章就介紹到這了,更多相關(guān)Java常用字符串方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMvc+Angularjs 實(shí)現(xiàn)多文件批量上傳

    SpringMvc+Angularjs 實(shí)現(xiàn)多文件批量上傳

    本文通過實(shí)例代碼給大家講解了SpringMvc+Angularjs 實(shí)現(xiàn)多文件批量上傳功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友一起學(xué)習(xí)吧
    2017-03-03
  • Spring Cloud Alibaba和Dubbo融合實(shí)現(xiàn)

    Spring Cloud Alibaba和Dubbo融合實(shí)現(xiàn)

    這篇文章主要介紹了Spring Cloud Alibaba和Dubbo融合實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java 動(dòng)態(tài)編譯在項(xiàng)目中的實(shí)踐分享

    Java 動(dòng)態(tài)編譯在項(xiàng)目中的實(shí)踐分享

    在 Java 中,動(dòng)態(tài)編譯是指在運(yùn)行時(shí)動(dòng)態(tài)地編譯 Java 源代碼,生成字節(jié)碼,并加載到 JVM 中執(zhí)行,動(dòng)態(tài)編譯可以用于實(shí)現(xiàn)動(dòng)態(tài)代碼生成、動(dòng)態(tài)加載、插件化等功能,本文將給大家分享一下Java 動(dòng)態(tài)編譯在項(xiàng)目中的實(shí)踐,感興趣的同學(xué)跟著小編一起來看看吧
    2023-07-07
  • SpringBoot配置文件中數(shù)據(jù)庫(kù)密碼加密兩種方案(推薦)

    SpringBoot配置文件中數(shù)據(jù)庫(kù)密碼加密兩種方案(推薦)

    SpringBoot項(xiàng)目經(jīng)常將連接數(shù)據(jù)庫(kù)的密碼明文放在配置文件里,安全性就比較低一些,尤其在一些企業(yè)對(duì)安全性要求很高,因此我們就考慮如何對(duì)密碼進(jìn)行加密,文中給大家介紹加密的兩種方式,感興趣的朋友一起看看吧
    2019-10-10
  • Springboot整合logback的詳細(xì)教程

    Springboot整合logback的詳細(xì)教程

    這篇文章主要介紹了Springboot整合logback的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • SpringBoot之Controller的使用詳解

    SpringBoot之Controller的使用詳解

    本篇文章主要介紹了SpringBoot之Controller的使用詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • Java實(shí)現(xiàn)冒泡排序

    Java實(shí)現(xiàn)冒泡排序

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)冒泡排序,把一列數(shù)組按從小到大或從大到小排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java方法的返回值及注意事項(xiàng)小結(jié)

    Java方法的返回值及注意事項(xiàng)小結(jié)

    這篇文章主要介紹了Java方法的返回值及注意事項(xiàng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • elasticsearch索引index數(shù)據(jù)功能源碼示例

    elasticsearch索引index數(shù)據(jù)功能源碼示例

    這篇文章主要為大家介紹了elasticsearch索引index功能源碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因分析

    JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因分析

    這篇文章主要介紹了JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時(shí)不能查到內(nèi)容的原因分析及簡(jiǎn)單處理方法,文中給大家介紹了javaweb中dbutils的使用,需要的朋友可以參考下
    2017-12-12

最新評(píng)論