欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談java中replace()和replaceAll()的區(qū)別

 更新時間:2015年11月10日 14:08:16   投稿:lijiao  
這篇文章主要介紹了java中replace()和replaceAll()的區(qū)別,兩者都是常用的替換字符的方法,感興趣的小伙伴們可以參考一下

replace和replaceAll是JAVA中常用的替換字符的方法,它們的區(qū)別是:

1)replace的參數(shù)是char和CharSequence,即可以支持字符的替換,也支持字符串的替換(CharSequence即字符串序列的意思,說白了也就是字符串);

2)replaceAll的參數(shù)是regex,即基于規(guī)則表達(dá)式的替換,比如,可以通過replaceAll("\\d", "*")把一個字符串所有的數(shù)字字符都換成星號;

相同點(diǎn):都是全部替換,即把源字符串中的某一字符或字符串全部換成指定的字符或字符串,如果只想替換第一次出現(xiàn)的,可以使用replaceFirst(),這個方法也是基于規(guī)則表達(dá)式的替換,但與replaceAll()不同的是,只替換第一次出現(xiàn)的字符串;

另外,如果replaceAll()和replaceFirst()所用的參數(shù)據(jù)不是基于規(guī)則表達(dá)式的,則與replace()替換字符串的效果是一樣的,即這兩者也支持字符串的操作;

還有一點(diǎn)注意::執(zhí)行了替換操作后,源字符串的內(nèi)容是沒有發(fā)生改變的。

  舉例如下:  

  String src = new String("ab43a2c43d");

  System.out.println(src.replace("3","f"));=>ab4f2c4fd.

  System.out.println(src.replace('3','f'));=>ab4f2c4fd.

  System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.

  System.out.println(src.replaceAll("a","f"));=>fb43fc23d.

  System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d

  System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

如何將字符串中的"\"替換成"\\": 

  String msgIn;

  String msgOut;

  msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");

原因:

  '\'在java中是一個轉(zhuǎn)義字符,所以需要用兩個代表一個。例如System.out.println( "\\" ) ;只打印出一個"\"。但是'\'也是正則表達(dá)式中的轉(zhuǎn)義字符(replaceAll 的參數(shù)就是正則表達(dá)式),需要用兩個代表一個。所以:\\\\被java轉(zhuǎn)換成\\,\\又被正則表達(dá)式轉(zhuǎn)換成\。

同樣

  CODE: \\\\\\\\

  Java: \\\\

  Regex: \\

將字符串中的'/'替換成'\'的幾種方式:

  msgOut= msgIn.replaceAll("/", "\\\\");

  msgOut= msgIn.replace("/", "\\");

  msgOut= msgIn.replace('/', '\\');

通過實(shí)例區(qū)分了java中replace()和replaceAll()的不同點(diǎn),希望本文對大家學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論