我試圖用一個(gè)“;”替換所有可以包含任意數(shù)量空格后跟結(jié)尾“;”的字符串 但我很困惑,因?yàn)橛卸鄠€(gè)空格。"ExampleString1 ;" -> "ExampleString1;""ExampleString2 ;" -> "ExampleString2;""ExampleString3 ;" -> "ExampleString3;""ExampleString1 ; ExampleString1 ;" -----> ExampleString1;ExampleString1我試過這樣:example.replaceAll("\\s+",";")但問題是可能有多個(gè)空格,這讓我很困惑
3 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
試試這個(gè):
replaceAll("\\s+;", ";").replaceAll(";\\s+", ";")

一只名叫tom的貓
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
基本上做匹配首先找到
(.+?) -> anything in a non-greedy fashion
(\\s+) -> followed by any number of whitespaces
(;) -> followed by a ";"
$ -> end of the string
而不是簡單地刪除第二組(空白),只需通過 $1$3
String test = "ExampleString1 ;";
test = test.replaceFirst("(.+?)(\\s+)(;)$", "$1$3");
System.out.println(test); // ExampleString1;

Qyouu
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
你只需要\s
像這樣轉(zhuǎn)義元字符:
"ExampleString1 ;".replaceAll("\\s+;$", ";")
添加回答
舉報(bào)
0/150
提交
取消