您的位置:首頁技術文章
文章詳情頁

Java 實現repalceAll只替換第二個匹配到的字符串

瀏覽:15日期:2022-08-20 08:41:03

String replace replaceFirst repaceAll區別

replace(char oldChar, char newChar)

返回一個新的字符串,它是通過用 newChar 替換此字符串中出現的所有 oldChar 得到的。

replaceAll(String regex, String replacement)

使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串

replaceFirst(String regex, String replacement)

使用給定的 replacement 替換此字符串匹配給定的正則表達式的第一個子字符串。

總結:

replace 替換的是char,replaceAll、replaceFirst替換的可以是字符串,也可以是正則表達式;三者返回的都是一個新的字符串。

例題

需求:將字符串 time:[* TO *] 中第二個*替換為 test

實現代碼

@Test public void replaceSecondStr() { String test = 'time:[* TO *]'; String result1 = test.replaceAll('(*)(.*?)(1)(.*?)', '$1$2test$4'); System.out.println('原字符串:' + test); System.out.println('替換后:' + result1);}

輸出:

原字符串:time:[* TO *]

替換后:time:[* TO test]

總結:

正則中()表示提取匹配的字符串并分組;會分配存儲空間,可以用$1取得匹配到的字符串;

1表示與第一個()中匹配的內容相同,也可以繼續寫(*);

(.*?)為勉強匹配方式,意思是匹配任何字符。

補充(取出匹配到的字符串)

@Testpublic void findGroup() { String test = 'time:[* TO *]'; Matcher matcher = Pattern.compile('(*)(.*?)(1)(.*?)').matcher(test); if (matcher.find()) { System.out.println(matcher.group()); }}

補充知識:java字符串的操作:去除字符、替換字符、多個字符分隔字符串

看代碼吧~

// 去除空格,換行,制表符public String replaceBlank(String str) {String dest = '';if (str!=null) {Pattern p = Pattern.compile('s*|t|r|n'); // 去除多個空格,去除制表符,回車,換行Matcher m = p.matcher(str);dest = m.replaceAll('');}return dest;}String s = '你要去除的字符串';

1.去除空格:s = s.replace(’s’,’’);

2.去除回車:s = s.replace(’n’,’’);

字符串去除多個字符串(括號):

String cal = tableStrings.get(i).replaceAll('(|)', ''); // 去除左右括號

字符串分隔多個字符:

String[] temp = cal.split('+|-|*|/'); // 按照加減乘除字符分隔字符串

以上這篇Java 實現repalceAll只替換第二個匹配到的字符串就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
国产综合久久一区二区三区