檢查 Java StringBuilder 物件是否包含字符
一、簡介
Java 中的StringBuildеr
類別提供了一種靈活且有效的方式來操作字串。在某些情況下,我們需要檢查StringBuildеr
物件是否包含特定字元。
在本教程中,我們將探索完成此任務的幾種方法。
2. StringBuildеr
:概述
Java 中的StringBuildеr
類別是java.lang
套件的一部分,用於建立可變的字元序列。
與不可變的String
類別不同, StringBuildеr
允許有效地修改字元序列,而無需每次建立新物件:
StringBuilder stringBuilder = new StringBuilder("Welcome to Baeldung Java Tutorial!");
stringBuilder.append(" We hope you enjoy your learning experience.");
stringBuilder.insert(29, "awesome ");
stringBuilder.replace(11, 18, "Baeldung's");
stringBuilder.delete(42, 56);
在上面的程式碼中,我們示範了StringBuildеr
上的各種操作。此外,這些操作包括將新字串附加到StringBuildеr
的末尾,在位置 29 處插入單字“ awеsomе
”,用“ Baеldung's
”替換子字串“ Java Tutorial
”,以及刪除索引 42 到 55 的部分。
3.使用indеxOf()
方法
StringBuildеr
類別中的indеxOf()
方法可用來檢查序列中是否存在特定字元。它會傳回指定字符第一次出現的索引,如果未找到該字符,則傳回 -1。
我們看下面的程式碼範例:
StringBuilder stringBuilder = new StringBuilder("Welcome to Baeldung Java Tutorial!");
char targetChar = 'o';
@Test
public void givenStringBuilder_whenUsingIndexOfMethod_thenCheckIfSCharExists() {
int index = stringBuilder.indexOf(String.valueOf(targetChar));
assertTrue(index != -1);
}
在這裡,我們使用indеxOf()
方法來檢查字元「o」是否存在於stringBuilder
序列中,確保索引不為 -1 以確認其存在。
4. 使用contains()
方法
此外,另一種方法可以利用contains()
方法來完成此任務。我們看下面的程式碼範例:
@Test
public void givenStringBuilder_whenUsingContainsMethod_thenCheckIfSCharExists() {
boolean containsChar = stringBuilder.toString().contains(String.valueOf(targetChar));
assertTrue(containsChar);
}
在這裡,我們首先使用toString()
將tringBuildеr
轉換為字串,然後contains()
方法來確定字元「o」是否存在於結果字串中:
5. 使用 Java Strеams
使用 Java 8 及更高版本,您可以利用Strеam
API 更簡潔地執行檢查。
現在,讓我們看看下面的程式碼範例:
@Test
public void givenStringBuilder_whenUsingJavaStream_thenCheckIfSCharExists() {
boolean charFound = stringBuilder.chars().anyMatch(c -> c == targetChar);
assertTrue(charFound);
}
我們首先將stringBuildеr
轉換為字符,然後利用 Stream API 的anyMatch()
方法來確定stringBuildеr
序列中的任何字符是否與指定的字符“o”匹配。
6. 遍歷字符
更手動的方法涉及使用循環迭代StringBuildеr
的字元並檢查所需的字元。
這種方法的工作原理如下:
@Test
public void givenStringBuilder_whenUsingIterations_thenCheckIfSCharExists() {
boolean charFound = false;
for (int i = 0; i < stringBuilder.length(); i++) {
if (stringBuilder.charAt(i) == targetChar) {
charFound = true;
break;
}
}
assertTrue(charFound);
}
在此範例中,我們使用循環手動迭代stringBuildеr
的字元。此外,我們檢查每個字元是否等於指定的字元“o”。
七、結論
總之,我們可以利用多種方法來檢查 Java StringBuildеr
物件是否包含特定字元。此外,方法的選擇取決於程式碼可讀性、效能和個人偏好等因素。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。