JAVA中string.replace和string.replaceAll的区别及用法

JAVA\u4e2dstring.replace\u548cstring.replaceAll\u7684\u533a\u522b\u53ca\u7528\u6cd5

1)replace\u7684\u53c2\u6570\u662fchar\u548cCharSequence,\u5373\u53ef\u4ee5\u652f\u6301\u5b57\u7b26\u7684\u66ff\u6362,\u4e5f\u652f\u6301\u5b57\u7b26\u4e32\u7684\u66ff\u6362(CharSequence\u5373\u5b57\u7b26\u4e32\u5e8f\u5217\u7684\u610f\u601d,\u8bf4\u767d\u4e86\u4e5f\u5c31\u662f\u5b57\u7b26\u4e32);
2)replaceAll\u7684\u53c2\u6570\u662fregex,\u5373\u57fa\u4e8e\u89c4\u5219\u8868\u8fbe\u5f0f\u7684\u66ff\u6362,\u6bd4\u5982,\u53ef\u4ee5\u901a\u8fc7replaceAll("\\d", "*")\u628a\u4e00\u4e2a\u5b57\u7b26\u4e32\u6240\u6709\u7684\u6570\u5b57\u5b57\u7b26\u90fd\u6362\u6210\u661f\u53f7;

1\u3001\u66ff\u6362\u65b9\u5f0f\u4e0d\u540c
\u3010public String replace( )\u3011
\u662f\u901a\u8fc7\u7528 newChar \u66ff\u6362\u6b64\u5b57\u7b26\u4e32\u4e2d\u51fa\u73b0\u7684\u6240\u6709 oldChar \u800c\u751f\u6210\u7684\u3002
\u3010public String replaceAll( )\u3011
\u4f7f\u7528\u7ed9\u5b9a\u7684 replacement \u5b57\u7b26\u4e32\u66ff\u6362\u6b64\u5b57\u7b26\u4e32\u5339\u914d\u7ed9\u5b9a\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u6bcf\u4e2a\u5b50\u5b57\u7b26\u4e32\u3002
2\u3001\u53c2\u6570\u4e0d\u540c
\u3010replace\u3011\u7684\u53c2\u6570\u662fchar\u548cCharSequence\u3002\u53ef\u4ee5\u652f\u6301\u5b57\u7b26\u7684\u66ff\u6362\uff0c\u4e5f\u652f\u6301\u5b57\u7b26\u4e32\u7684\u66ff\u6362\u3002
\u3010replaceAll\u3011\u7684\u53c2\u6570\u662fregex\uff0cregex\u8868\u793a\u662f\u6b63\u5219\u8868\u8fbe\u5f0f\u3002\u5373\u57fa\u4e8e\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u66ff\u6362\u3002
\u7528\u6cd5\u8303\u4f8b\u4e00\uff1a
public static void main(String[] arg) throws OgnlException {
String s =\u201dsdf\\a\\aa\u201d;
//\u628as\u4e2d\u7684\u53cd\u659c\u6760\ \u66ff\u6362\u4e3a\\
System.out.println(s);
System.out.println(s.replaceAll(\u201c\\\\\u201d, \u201c\\\\\\\\\u201d));
System.out.println(s.replace(\u201c\\\u201d, \u201c\\\\\u201d));
}
\u7528\u6cd5\u8303\u4f8b\u4e8c\uff1a
String str = "wel2come3Souhe";
String str1 = str.replace("e", "E");
String str3 = str.replace('e', 'E');
System.out.println("replace\u5b57\u7b26\u4e32==" + str1);
System.out.println("replace\u5b57\u7b26=="+str3);
String str2 = str.replaceAll("\\d", "a");//\u5c06\u6570\u5b57\u66ff\u6362a
System.out.println("replaceAll==" + str2);
\u8f93\u51fa\u7ed3\u679c\uff1a
replace\u5b57\u7b26\u4e32==wEl2comE3SouhE
replace\u5b57\u7b26==wEl2comE3SouhE
replaceAll==welacomeaSouhe

\u6269\u5c55\u8d44\u6599
Java\u4e2d\u7684String\u7c7b
1\u3001String\u7c7b\u662ffinal\u7c7b\uff0c\u56e0\u6b64String\u7c7b\u4e0d\u80fd\u88ab\u7ee7\u627f\u3002
2\u3001String\u7684\u6210\u5458\u65b9\u6cd5\u90fd\u9ed8\u8ba4\u4e3afinal\u65b9\u6cd5\u3002
3\u3001\u88abfinal\u4fee\u9970\u7684\u7c7b\u662f\u4e0d\u5141\u8bb8\u88ab\u7ee7\u627f\u7684\uff0c\u5e76\u4e14\u8be5\u7c7b\u4e2d\u7684\u6210\u5458\u65b9\u6cd5\u90fd\u9ed8\u8ba4\u4e3afinal\u65b9\u6cd5\u3002
4\u3001String\u7c7b\u5176\u5b9e\u662f\u901a\u8fc7char\u6570\u7ec4\u6765\u4fdd\u5b58\u5b57\u7b26\u4e32\u7684\u3002
5\u3001String\u5bf9\u8c61\u4e00\u65e6\u88ab\u521b\u5efa\u5c31\u662f\u56fa\u5b9a\u4e0d\u53d8\u7684\u3002
6\u3001\u5bf9String\u5bf9\u8c61\u7684\u4efb\u4f55\u6539\u53d8\u90fd\u4e0d\u5f71\u54cd\u5230\u539f\u5bf9\u8c61\uff0c\u76f8\u5173\u7684\u4efb\u4f55change\u64cd\u4f5c\u90fd\u4f1a\u751f\u6210\u65b0\u7684\u5bf9\u8c61\u3002
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1-Java
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1-string

一、replace和replaceAll的区别
    1、参数区别

        1)    replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串)
        2)    replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号
    2、使用转义字符进行替换时候的区别
        1)replace可以直接使用转义字符进行替换,例如:

         System.out.println(x.replace("\\", "++")); //没有问题

        2)replaceAll不可以直接使用转义字符进行替换,例如:    
        System.out.println(x.replaceAll("\\", "++"));  
        //报错 java.util.regex.PatternSyntaxException

    replaceAll的参数就是regex,是正则表达式。首先会转义,所以报错。可改为如下代码:
        System.out.println(x.replaceAll("\\\\", "++"));

    总结:当字符串无法确定是否具有转义字符时,而且也不需要转义时,建议使用replace函数;否则,使用replaceAll函数



  • java涓濡備綍瀹炵幇鍒犻櫎鏂囨湰鏂囨。閲岄潰鐨勬寚瀹氬瓧绗
    绛旓細鎴戞潵瑙i噴涓涓嬪ソ浜嗭紝鍏跺疄JAVA涓娌℃湁鐩存帴鍦ㄦ枃浠朵腑鍒犻櫎鎴栬呬慨鏀逛竴琛屾垨鑰呭嚑涓瓧绗︾殑鍑芥暟锛屼絾鏄棦鐒舵ゼ涓绘彁鍒颁簡C++涓殑鏂囦欢鎸囬拡锛岄偅涔圝AVA鍦≧andomAccessFile锛坖ava.io.RandomAccessFile锛夌被涓彁渚涗簡涓绯诲垪鐨勬柟娉曞彲浠ユ帶鍒惰繖涓滄枃浠舵寚閽堚濈殑涓滀笢锛屼緥濡傦細getFilePointer鏂规硶灏卞彲浠ヨ幏鍙栫浉瀵规枃浠跺ご鐨勬寚閽堝亸绉婚噺锛涗篃鍙互閫...
  • Java涓,鏈変釜绋嬪簭鐨勮鍙,涓轰粈涔堣繖涔堢敤?
    绛旓細Integer鏄被,int鏄熀鏈暟鎹被鍨 Integer鏄湪鍫嗕腑鍒涘缓,int鏄垱寤哄湪鏍堜腑 鏍閲鍒涘缓鐨鍙橀噺锛岃姣斿湪鍫嗗垱寤虹殑閫熷害瑕佸揩寰楀 涔嬫墍浠ヨ鎶奿nt灏佽鎴怚nteger鍨,鏄洜涓篒nteger鏄璞$被鍨(Object),寰堝鏂规硶鍙傛暟灏卞彧鎺ユ敹瀵硅薄绫诲瀷(Object),瀵硅薄绫诲瀷鍏辨湁鐨勭壒鐐瑰厑璁告帴鍙梟ull鍊硷紝鑰宨nt鎴栧叾瀹冨熀 鏈被鍨嬪氨涓嶅彲浠ヤ簡銆
  • ZMQ JAVA浣跨敤缁忛獙涔 ZMQ绠浠嬫庝箞瑙e喅
    绛旓細REQ鍙戦佹秷鎭椂浼氬湪娑堟伅椤堕儴鎻掑叆涓涓┖甯э紝鎺ュ彈鏃朵細灏嗙┖甯хЩ鍘汇傚叾瀹濺EQ鏄缓绔嬪湪DEALER涔嬩笂鐨锛屼絾REQ鍙湁褰撴秷鎭彂閫佸苟鎺ュ彈鍒板洖搴斿悗鎵嶈兘缁х画杩愯銆俁OUTER鍦ㄦ敹鍒版秷鎭椂浼氬湪椤堕儴娣诲姞涓涓俊灏侊紝鏍囪娑堟伅鏉ユ簮銆傚彂閫佹椂浼氶氳繃璇ヤ俊灏佸喅瀹氬摢涓妭鐐瑰彲浠ヨ幏鍙栧埌璇ユ潯娑堟伅銆REP鍦ㄦ敹鍒版秷鎭椂浼氬皢绗竴涓┖甯т箣鍓嶇殑鎵鏈変俊鎭...
  • 璇烽棶JAVA涓姝e垯琛ㄨ揪寮忓尮閰嶆庝箞瀹炵幇鐨!
    绛旓細util.regex.Matcher;import java.util.regex.Pattern;/** * 姝e垯琛ㄨ揪寮 * @version V5.0 * @author Admin * @date 2015-7-25 */public class Regex { /** * @param args * @author Admin * @date 2015-7-25 */ public static void main(String[] args) { ...
  • java涓鏋勯犳柟娉曢噸杞藉悧
    绛旓細public class Test { public static void main(String[] args){ Human aPerson = new Human();aPerson.breath(10);} } class Human { / breath() 1 / void breath(){ System.out.println("hu...hu...");} / breath() 2 / void breath(int rep){ int i;for(i = 0; i < rep;...
  • java姝e垯琛ㄨ揪寮忔浛鎹rl瀛楃
    绛旓細杩欐槸鎴戝師鏉ュ啓鐨锛屼綘鍙互鏍规嵁闇瑕佷慨鏀逛竴涓 瑕佹浛鎹㈢殑瀛楃/// /// 鏇挎崲url涓殑闈炴硶瀛楃/// /// /// <returns></returns>public static string RepacleRequestString(string strRequest){ string[] arrStr = new string[]{"&",";","$","%","@","'","\"","<",">","\\(","\...
  • findBugs 杩欎釜鎶ョ殑鏄粈涔堥敊璇
    绛旓細鎻忚堪锛 Null passed for nonnull parameter 鎶婄┖鍊间紶缁欎簡闈炵┖鐨鍙傛暟 瑙e喅鏂规硶锛氬鍔犻潪绌哄垽鏂 (鍏) [NP_IMMEDIATE_DEREFERENCE_OF_READLINE]鎻忚堪锛 Immediate dereference of the result of readLine() 绔嬪嵆寮曠敤浜唕eadLine()鐨勭粨鏋 瑙e喅鏂规硶锛氬垽鏂璻eadLine鐨勭粨鏋滄槸鍚︿负绌 (涔) [EI_EXPOSE_REP] 鎭舵剰浠g爜...
  • 鐢熸垚4涓殢鏈鐨涓嶅悓鐨勬暟瀛椼JAVA璇█銆 涓轰粈涔堜細浜х敓閲嶅鐨勬暟瀛?_鐧惧害...
    绛旓細褰撶劧浼氬嚭鐜伴噸澶鐨浜嗏︹︽棦鐒舵槸闅忔満鑲畾浼氭湁閲嶅鍊煎嚭鐜般備綘鍙互鍒ゆ柇涓涓嬫槸鍚﹀嚭鐜拌繃杩欎釜鍊笺傛垨鑰呯洿鎺ユ妸鍊兼斁杩泂et閲岄潰锛岀劧鍚庡湪set鐨勫ぇ灏忎负4鐨勬椂鍊欑粨鏉熷惊鐜紝杩欐牱灏辫兘寰楀埌4涓笉閲嶅鐨勯殢鏈烘暟
  • Java涓鐨刪ttpclient4.5搴旇鎬庝箞浣跨敤?
    绛旓細apache.http.util.EntityUtils;/*** A example that demonstrates how HttpClient APIs can be used to perform* form-based logon.*/ public class ClientFormLogin { public static void main(String[] args) throws Exception { BasicCookieStore cookieStore = new BasicCookieStore();Closeable...
  • 鍦ㄥ啓闊╅『骞冲潶鍏嬪ぇ鎴樼殑鏃跺欏嚭鐜颁簡闂,鍧﹀厠鏃犳硶绉诲姩,涓嬮潰鏄唬鐮!_鐧惧害...
    绛旓細鍚屽 add(new Mypanel());addKeyListener(new Mypanel());浣犺繖鏍峰紕鏄袱涓柊鐨凪ypanel 涓嶆槸鍚屼竴涓 瑕佺敤 Mypanel mypanel=newMypanel();this.add(mypanel);this.addKeyListener(mypanel);
  • 扩展阅读:www.sony.com.cn ... 任天堂网站入口 ... java.52emu.cn ... public static void main ... javascript免费网站 ... www.konka.com ... 国产377vc精华真能祛斑吗 ... www.oneplus.com ... python网站入口 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网