replacealljava
Ⅰ 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中,replaceAll方法中的問題
public String replaceAll(String regex,
String replacement)使用給定的 replacement 字元串替換此字元串匹配給定的正則表達式的每個子字元串。
此方法調用的 str.replaceAll(regex, repl) 形式產生與以下表達式完全相同的結果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
參數:
regex - 用來匹配此字元串的正則表達式
replacAll要用正則表達式,所以[*]就可以,[*]表示*
Ⅲ 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中String類replace和replaceAll的區別
java中string的replace和replace的區別
乍一看,字面上理解好像replace只替換第一個出現的字元(受javascript的影響),replaceall替換所有的字元,其實大不然,只是替換的用途不一樣,簡而言之,replace用新串序列替換舊串序列,而replaceall是用新串替換與前面正則表達式相匹配的位置的字元串。
public String replace(char oldChar,char newChar)
返回一個新的字元串,它是通過用 newChar 替換此字元串中出現的所有 oldChar 而生成的。 如 果 oldChar 在此 String 對象表示的字元序列中沒有出現,則返回對此 String 對象的引用。否則,創建一個新的 String 對象,用來表示與此 String 對象表示的字元序列相等的字元序列,除了每個出現的 oldChar 都被一個 newChar 替換之外。
public String replaceAll(String regex,String replacement)使用給定的 replacement 字元串替換此字元串匹配給定的正則表達式的每個子字元串。此方法調用的 str.replaceAll(regex, repl) 形式產生與以下表達式完全相同的結果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
參數:
regex – 用來匹配此字元串的正則表達式
返回:得到的 String
拋出: PatternSyntaxException – 如果正則表達式的語法無效。
實際應用:
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.replaceAll()是用regular expression 來作為參數的。但是java本身的字元串對於轉義符\也有類似的處理。首先,java會把「\\\\」解釋成一個字元串(其中包含兩個char)——「\ \」這個就是你在JDK的文檔里看到的。
接下來,由於replaceAll是以正則表達式作為參數,所以「\\」被解釋成一個regex。對於一個regex來說這就代表著一個字元,就是「\」。對後面的那個8個\來說,最終會被解釋成「\\」。
換言之,假設String.replaceAll()是以普通字元串,而不是regex作為參數,那麼這樣寫代碼: String target = source.replaceAll(『\\』, 『\\\\』); 就可以了。
Ⅵ 淺談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用法
把
String s1 = s.replaceAll(ss, "");
System.out.println(s1);
改為
s = s.replaceAll(ss, "");
System.out.println(s);
即可
Ⅷ 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中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
(9)replacealljava擴展閱讀
Java中的String類
1、String類是final類,因此String類不能被繼承。
2、String的成員方法都默認為final方法。
3、被final修飾的類是不允許被繼承的,並且該類中的成員方法都默認為final方法。
4、String類其實是通過char數組來保存字元串的。
5、String對象一旦被創建就是固定不變的。
6、對String對象的任何改變都不影響到原對象,相關的任何change操作都會生成新的對象。
Ⅹ java replaceAll 正則表達式的用法是什麼
String a = "2016-06-24 10:33:20";
String b = a.replaceAll("[-\s:]", "");
System.out.println(b);
跟你簡單說明下
正則表達式中[]中的內容表示匹配其中任何一個
s 表示匹配任何不可見的空字元,但是在java中需要在前面再加一個轉義字元才能生效