Java字符串中有多個(gè)分隔符的處理方式
若字符串中存在多個(gè)分隔符,你可以使用正則表達(dá)式來定義分隔符,從而對(duì)字符串進(jìn)行分割。
下面詳細(xì)介紹幾種常見的處理方式。
方法一:使用正則表達(dá)式分割字符串
在 Java 里,String 類的 split 方法能夠接收一個(gè)正則表達(dá)式作為分隔符。
你可以把多個(gè)分隔符組合成一個(gè)正則表達(dá)式。
例如,若要以空格、逗號(hào)和分號(hào)作為分隔符,可以使用正則表達(dá)式 [ ,;]。
以下是示例代碼:
public class SplitStringWithMultipleDelimiters {
public static void main(String[] args) {
String input = "apple, banana; cherry orange";
// 使用正則表達(dá)式 [ ,;] 作為分隔符
String[] parts = input.split("[ ,;]");
for (String part : parts) {
if (!part.isEmpty()) {
System.out.println(part);
}
}
}
} 代碼解釋
input.split("[ ,;]"):[ ,;]是一個(gè)字符類正則表達(dá)式,表示匹配空格、逗號(hào)或分號(hào)。split方法會(huì)根據(jù)這個(gè)正則表達(dá)式將字符串分割成多個(gè)部分。if (!part.isEmpty()):由于分割后可能會(huì)產(chǎn)生空字符串,所以使用該條件過濾掉空字符串。
方法二:使用 Pattern 和 Matcher 類
你也可以使用 java.util.regex 包中的 Pattern 和 Matcher 類來手動(dòng)處理分割邏輯,這種方式更靈活,能處理更復(fù)雜的情況。
以下是示例代碼:
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SplitStringWithPatternMatcher {
public static void main(String[] args) {
String input = "apple, banana; cherry orange";
// 定義正則表達(dá)式,匹配分隔符
Pattern pattern = Pattern.compile("[ ,;]");
Matcher matcher = pattern.matcher(input);
List<String> parts = new ArrayList<>();
int startIndex = 0;
while (matcher.find()) {
int endIndex = matcher.start();
if (endIndex > startIndex) {
parts.add(input.substring(startIndex, endIndex));
}
startIndex = matcher.end();
}
if (startIndex < input.length()) {
parts.add(input.substring(startIndex));
}
for (String part : parts) {
System.out.println(part);
}
}
} 代碼解釋
Pattern.compile("[ ,;]"):編譯一個(gè)正則表達(dá)式,用于匹配空格、逗號(hào)或分號(hào)。Matcher matcher = pattern.matcher(input):創(chuàng)建一個(gè)Matcher對(duì)象,用于在輸入字符串中查找匹配的分隔符。while (matcher.find()):循環(huán)查找輸入字符串中的分隔符,每次找到分隔符后,提取分隔符之前的子字符串并添加到parts列表中。if (startIndex < input.length()):處理最后一個(gè)分隔符之后的子字符串。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud配置動(dòng)態(tài)更新原理解析
在微服務(wù)架構(gòu)的浩瀚星海中,服務(wù)配置的動(dòng)態(tài)更新如同魔法一般,能夠讓應(yīng)用在不重啟的情況下,實(shí)時(shí)響應(yīng)配置的變更,Spring Cloud作為微服務(wù)架構(gòu)中的佼佼者,其動(dòng)態(tài)配置更新的能力尤為引人注目,本文給大家介紹了SpringCloud配置動(dòng)態(tài)更新原理,需要的朋友可以參考下2025-01-01
java僅用30行代碼就實(shí)現(xiàn)了視頻轉(zhuǎn)音頻的批量轉(zhuǎn)換
這篇文章主要介紹了java僅用30行代碼就實(shí)現(xiàn)了視頻轉(zhuǎn)音頻的批量轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Spring Boot集成spring-boot-devtools開發(fā)時(shí)實(shí)現(xiàn)熱部署的方式
這篇文章主要介紹了Spring Boot集成spring-boot-devtools開發(fā)時(shí)實(shí)現(xiàn)熱部署的方式,文中還給大家提到了spring boot 實(shí)現(xiàn)熱部署的方式及集成注意事項(xiàng),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
Java Map 在put值時(shí)value值不被覆蓋的解決辦法
這篇文章主要介紹了Java Map 在put值時(shí)value值不被覆蓋的解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
最新IntelliJ?IDEA?2022配置?Tomcat?8.5?的詳細(xì)步驟演示
這篇文章主要介紹了IntelliJ?IDEA?2022?詳細(xì)配置?Tomcat?8.5?步驟演示,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
解讀過濾器(Filter)和攔截器(Interceptor)的使用
這篇文章主要介紹了過濾器(Filter)和攔截器(Interceptor)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06

