大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java刪除或替換部分字符串

Java刪除或替換部分字符串

更新時間:2022-08-11 11:34:21 來源:動力節點 瀏覽2896次

在本Java教程中,動力節點小編將帶著大家一起研究可以在 Java中刪除或替換部分字符串的各種方法。

我們將探索使用 String API 刪除和/或替換子字符串,然后使用 StringBuilder API,最后使用 Apache Commons 庫的 StringUtils類。

字符串API

替換子字符串的最簡單直接的方法之一是使用 String 類的 replace 、replaceAll 或 replaceFirst 。

replace()方法有 兩個參數——目標和替換文本:

String master = "Hello World Baeldung!";
String target = "Baeldung";
String replacement = "Java";
String processed = master.replace(target, replacement);
assertTrue(processed.contains(replacement));
assertFalse(processed.contains(target));

上面的代碼片段將產生這個輸出:

Hello World Java!

如果在選擇目標時需要正則表達式,那么 replaceAll()或 replaceFirst()應該是選擇的方法。顧名思義, replaceAll() 將替換每個匹配的匹配項,而 replaceFirst()將替換第一個匹配的匹配項:

String master2 = "Welcome to Baeldung, Hello World Baeldung";
String regexTarget = "(Baeldung)$";
String processed2 = master2.replaceAll(regexTarget, replacement);
assertTrue(processed2.endsWith("Java"));

processes2的值將是:

Welcome to Baeldung, Hello World Java

這是因為作為 regexTarget提供的正則表達式只會匹配最后一次出現的 Baeldung。 在上面給出的所有示例中,我們可以使用空替換,它會有效地從master中刪除一個目標。

StringBuilder API 

我們還可以使用 StringBuilder類在 Java 中操作文本。 這里的兩個方法是 delete()和 replace()。

我們可以從現有的String構造 StringBuilder 的實例,然后使用上述方法根據需要執行String操作:

String master = "Hello World Baeldung!";
String target = "Baeldung";
String replacement = "Java";
int startIndex = master.indexOf(target);
int stopIndex = startIndex + target.length();
StringBuilder builder = new StringBuilder(master);

現在我們可以 使用 delete() 刪除目標:

builder.delete(startIndex, stopIndex);
assertFalse(builder.toString().contains(target));

我們也可以使用 replace()來更新 master:

builder.replace(startIndex, stopIndex, replacement);
assertTrue(builder.toString().contains(replacement));

使用StringBuilder 和 String API的一個明顯區別 是我們必須自己獲取 目標 String的開始和結束索引。

StringUtils類

我們將考慮的另一種方法是 Apache Commons 庫。

首先,讓我們將所需的依賴項添加到我們的項目中:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

可以在此處找到該庫的最新版本。

StringUtils 類具有替換String的子字符串的方法:

String master = "Hello World Baeldung!";
String target = "Baeldung";
String replacement = "Java";
String processed = StringUtils.replace(master, target, replacement);
assertTrue(processed.contains(replacement));

eplace()有一個重載變體,它接受一個整數 max參數,該參數確定要替換的出現次數。如果不區分大小寫,我們也可以使用replaceIgnoreCase():

String master2 = "Hello World Baeldung!";
String target2 = "baeldung";
String processed2 = StringUtils.replaceIgnoreCase(master2, target2, replacement);
assertFalse(processed2.contains(target));

替換確切的詞

在最后一個示例中,我們將學習如何替換String中的確切單詞。

執行此替換的直接方法是使用帶有單詞邊界的正則表達式。

單詞邊界正則表達式是\b。在這個正則表達式中包含所需的單詞只會匹配精確的出現。

首先,讓我們看看如何在 String API 中使用這個正則表達式:

String sentence = "A car is not the same as a carriage, and some planes can carry cars inside them!";
String regexTarget = "\\bcar\\b";
String exactWordReplaced = sentence.replaceAll(regexTarget, "truck");

exactWordReplaced字符串包含:

"A truck is not the same as a carriage, and some planes can carry cars inside them!"

只有確切的詞將被替換。請注意,在 Java 中使用正則表達式時,總是需要對反斜杠進行轉義。

另一種替換方法是使用 Apache Commons Library 中的RegExUtils類,正如我們在上一節中看到的那樣,它可以作為依賴項添加:

String regexTarget = "\\bcar\\b";
String exactWordReplaced = RegExUtils.replaceAll(sentence, regexTarget, "truck");

雖然這兩種方法都會產生相同的結果,但決定使用哪一種將取決于我們的具體情況。如果大家想了解更多相關知識,可以關注一下動力節點的Java視頻教程,里面的課程內容細致全面,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: aaa级精品久久久国产片 | 国产伦精品一区二区三区 | 91精品久久久久含羞草 | 成人欧美一区二区三区黑人妖 | 四虎影视精品永久免费网站 | 日日干日日爽 | 欧美精品毛片 | 亚洲色视频 | 亚洲精品乱码久久久久久中文字幕 | 亚洲国产精品久久卡一 | 五月情视频在线观看 | 久久婷婷是五月综合色狠狠 | 国产视频欧美 | 国产免费人视频在线观看免费 | se在线播放| 欧美日韩中文字幕在线视频 | 欧美在线91| 成人欧美一级毛片免费观看 | 国产精品亚洲片在线牛牛影视 | 两性色午夜视频免费老司机 | 999热视频| 欧美seav在线| 综合图片亚洲 | 亚洲欧美在线中文字幕不卡 | 99热久久国产精品这里 | 色综合天天色综合 | 免费一级特黄特色黄大任片 | 国产精品九九热 | 欧美成人一区二区三区在线视频 | 一级aa 毛片高清免费看 | 黄片毛片在线看 | 热综合一本伊人久久精品 | 欧美性猛交xx乱大交 | 久久视频精品36线视频在线观看 | 日干夜操 | 四虎4hu永久在线观看 | 66精品综合久久久久久久 | 日本亚洲欧美国产日韩ay高清 | 国内久久精品 | 大学生久久香蕉国产线看观看 | 久久riav.com|