javareplaceall
⑴ 淺談java中replace和replaceAll的區別
replace和replaceAll是JAVA中常用的替換字元的方法,它們的區別是:
1、replace的參數是char和CharSequence,既可以支持字元的替換,也支持字元串的替換(CharSequence即字元串序列的意思,說白了也就是字元串);
2、replaceAll的參數是regex,即基於規則表達式的替換,比如,可以通過replaceAll("\\d",
"*")把一個字元串所有的數字字元都換成星號;
3、相同點是都是全部替換,即把源字元串中的某一字元或字元串全部換成指定的字元或字元串,如果只想替換第一次出現的,可以使用
4、replaceFirst(),這個方法也是基於規則表達式的替換,但與replaceAll()不同的時,只替換第一次出現的字元串;
5、另外,如果replaceAll()和replaceFirst()所用的參數據不是基於規則表達式的,則與replace()替換字元串的效果是一樣的,即這兩者也支持字元串的操作;
還有一點注意:執行了替換操作後,源字元串的內容是沒有發生改變的.
⑵ java replaceall 怎麼替換
replace和replaceAll是JAVA中常用的替換字元的方法,它們的區別是:
1)replace的參數是char和CharSequence,即可以支持字元的替換,也支持字元串的替換(CharSequence即字元串序列的意思,說白了也就是字元串);
2)replaceAll的參數是regex,即基於規則表達式的替換,比如,可以通過replaceAll("\\d", "*")把一個字元串所有的數字字元都換成星號;
相同點:都是全部替換,即把源字元串中的某一字元或字元串全部換成指定的字元或字元串,如果只想替換第一次出現的,可以使用replaceFirst(),這個方法也是基於規則表達式的替換,但與replaceAll()不同的是,只替換第一次出現的字元串;
另外,如果replaceAll()和replaceFirst()所用的參數據不是基於規則表達式的,則與replace()替換字元串的效果是一樣的,即這兩者也支持字元串的操作;
還有一點注意::執行了替換操作後,源字元串的內容是沒有發生改變的。
舉例如下:
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中是一個轉義字元,所以需要用兩個代表一個。例如System.out.println( "\\" ) ;只列印出一個"\"。但是'\'也是正則表達式中的轉義字元(replaceAll 的參數就是正則表達式),需要用兩個代表一個。所以:\\\\被java轉換成\\,\\又被正則表達式轉換成\。
同樣
CODE: \\\\\\\\
Java: \\\\
Regex: \\
將字元串中的'/'替換成'\'的幾種方式:
msgOut= msgIn.replaceAll("/", "\\\\");
msgOut= msgIn.replace("/", "\\");
msgOut= msgIn.replace('/', '\\');
通過實例區分了java中replace()和replaceAll()的不同點,希望本文對大家學習有所幫助
⑶ java replaceAll該怎麼用
API如下:
publicStringreplaceAll(Stringregex, Stringreplacement)
regex: 需要匹配替換的正則replacement: 將匹配的串替換為此字元串
根據API可知,一個String對象即可調用此API
參考以下例子:
String s = new String("I love programming so much!");
System.out.println(s);//I love programming so much!
s = s.replaceAll("m{1,}", "xxxx_xxxx");
System.out.println(s);//I love progrxxxx_xxxxxxxx_xxxxaing so xxxx_xxxxuch!
那麼 tmpString = tmpString.replaceAll("'", "\\'");
官方最新API地址docs.oracle.com/javase/8/docs/api/
⑷ java中replaceAll的用法,不同的用法為什麼會報錯
StringBuilder 可以用repalce方法。
其實你這里都可以用這個方法,效果和repalceAll是一樣的,代碼如下:
packagemytest;
//replace替換匹配字元串
publicclasstest{
publicstaticvoidmain(String[]args){
Strings1="上海自來水來自海上";
System.out.println(s1.replace("自來水","*"));//將「自來水」三個字替換為「*」
StringBuilders2=newStringBuilder();
s2.append("大家好").append("這是蒼井空").append("老師");
System.out.println(s2.replace("蒼井空","井空"));
}
}
replaceAll方法比replace方法功能主要是多了可以用正則表達式來匹配字元串,你這里沒有用正則,用replace方法就好,而且String 和 StringBuilder都有這個方法
⑸ java中String的replaceAll方法
字元組中「」是有轉義的含義的,就跟你replaceAll中使用多個""是為了轉義一樣。
你定義var1時,java是認為"dfas'f"中的""是轉義字元,轉義"'"(最後還是"'")。所以var1和var2其實是一樣的。這也是為什麼你replaceAll後的結果也是一樣的。
publicclassTest{
publicstaticvoidmain(String[]args){
Stringvar1="dfas'f";
Stringvar2="dfas'f";
System.out.println(var1);//結果是dfas'f
System.out.println(var1.equals(var2));//結果是true
}
}
⑹ java replaceAll 正則表達式的用法是什麼
String a = "2016-06-24 10:33:20";
String b = a.replaceAll("[-\s:]", "");
System.out.println(b);
跟你簡單說明下
正則表達式中[]中的內容表示匹配其中任何一個
s 表示匹配任何不可見的空字元,但是在java中需要在前面再加一個轉義字元才能生效
⑺ java replaceAll用法
把
String s1 = s.replaceAll(ss, "");
System.out.println(s1);
改為
s = s.replaceAll(ss, "");
System.out.println(s);
即可
⑻ JAVA中string.replace和string.replaceAll的區別及用法
1、替換方式不同
【public String replace( )】
是通過用 newChar 替換此字元串中出現的所有 oldChar 而生成的。
【public String replaceAll( )】
使用給定的 replacement 字元串替換此字元串匹配給定的正則表達式的每個子字元串。
2、參數不同
【replace】的參數是char和CharSequence。可以支持字元的替換,也支持字元串的替換。
【replaceAll】的參數是regex,regex表示是正則表達式。即基於正則表達式的替換。
用法範例一:
public static void main(String[] arg) throws OgnlException {
String s =」sdf\a\aa」;
//把s中的反斜杠 替換為\
System.out.println(s);
System.out.println(s.replaceAll(「\\」, 「\\\\」));
System.out.println(s.replace(「\」, 「\\」));
}
用法範例二:
String str = "wel2come3Souhe";
String str1 = str.replace("e", "E");
String str3 = str.replace('e', 'E');
System.out.println("replace字元串==" + str1);
System.out.println("replace字元=="+str3);
String str2 = str.replaceAll("\d", "a");//將數字替換a
System.out.println("replaceAll==" + str2);
輸出結果:
replace字元串==wEl2comE3SouhE
replace字元==wEl2comE3SouhE
replaceAll==welacomeaSouhe
(8)javareplaceall擴展閱讀
Java中的String類
1、String類是final類,因此String類不能被繼承。
2、String的成員方法都默認為final方法。
3、被final修飾的類是不允許被繼承的,並且該類中的成員方法都默認為final方法。
4、String類其實是通過char數組來保存字元串的。
5、String對象一旦被創建就是固定不變的。
6、對String對象的任何改變都不影響到原對象,相關的任何change操作都會生成新的對象。
⑼ java replaceAll應該怎麼用,謝謝大神了
替換字元串中所有符合條件的字元
有兩個參數,第一個參數是被替換的串(也可以用正則),第二個參數是替換後的串
比如"aabbccaabbcc".replaceAll("aa","ss");
正則的"asd123asdiopiop".replaceAll("\\d", "kk");類似這種
⑽ java中,replaceAll方法中的問題
public String replaceAll(String regex,
String replacement)使用給定的 replacement 字元串替換此字元串匹配給定的正則表達式的每個子字元串。
此方法調用的 str.replaceAll(regex, repl) 形式產生與以下表達式完全相同的結果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
參數:
regex - 用來匹配此字元串的正則表達式
replacAll要用正則表達式,所以[*]就可以,[*]表示*