淺談java中replace()和replaceAll()的差別。本站提示廣大學習愛好者:(淺談java中replace()和replaceAll()的差別)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談java中replace()和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()的分歧點,願望本文對年夜家進修有所贊助。