老生常談java路徑中的反斜杠和斜杠的區(qū)別
JAVA中的斜杠
有正斜杠與反斜杠之分,正斜杠,一般就叫做斜杠,符號為“/”;反斜杠的符號為“\”。
斜杠(/)在JAVA中沒有什么特別的意義,就是代表一個字符‘/';
反斜杠(\)則不然,它和緊跟著它的那個字符構(gòu)成轉(zhuǎn)義字符,如“\n”(換行)、“\””(字符‘”‘)等,所以在字符串中要表示字符'\'要用“\\”來表示,例:如果你這樣定義一個字符串String s = “name\sex”是錯誤的,要這樣定義String s = “name\\sex”;
注意:在正則表達式中的“\\”表示和后面緊跟著的那個字符構(gòu)成一個轉(zhuǎn)義字符(姑且先這樣命名),代表著特殊的意義;所以如果你要在正則表達式中表示一個反斜杠\,應(yīng)當寫成”\\\\”。如果你這樣獲得一個Matcher,Matcher m= Pattern.compile(“\\”).matcher(“\\”)將會報錯,你應(yīng)當這樣寫Matcher m = Pattern.compile(“\\\\”).matcher(“\\”)才是正確且匹配的
接下來我們來看一下String類中replace(CharSequencetarget,CharSequence replacement)方法與replaceAll(String regex,String replacement)方法的區(qū)別:
我們先看一個例子:
public static voidmain(String[] arg) throws OgnlException {
String s="sdf\\a\\aa";
//把s中的反斜杠\ 替換為\\
System.out.println(s);
System.out.println(s.replaceAll("\\\\","\\\\\\\\"));
System.out.println(s.replace("\\","\\\\"));
}
可以看出上面兩種都返回相同的替換結(jié)果。
這 里的關(guān)鍵是String.replaceAll()是用regular expression 來作為參數(shù)的。但是java本身的字符串對于轉(zhuǎn)義符\也有類似的處理。首先,java會把“\\\\”解釋成一個字符串(其中包含兩個char)。接下來,由于replaceAll是以正則表達式作為參數(shù),所以“\\”被解釋成一個regex。對于一個regex來說這就代表著一個字符,就是“\”。對后面的那個8個\來說,最終會被解釋成“\\”。
換言之,假設(shè)String.replaceAll()是以普通字符串,而不是regex作為參數(shù),那么這樣寫代碼: String target = source.replaceAll('\\','\\\\'); 就可以了。
以上這篇老生常談java路徑中的反斜杠和斜杠的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Cloud 優(yōu)雅下線以及灰度發(fā)布實現(xiàn)
這篇文章主要介紹了Spring Cloud 優(yōu)雅下線以及灰度發(fā)布實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Java/Android 實現(xiàn)簡單的HTTP服務(wù)器
這篇文章主要介紹了Java/Android 如何實現(xiàn)簡單的HTTP服務(wù)器,幫助大家更好的進行功能測試,感興趣的朋友可以了解下2020-10-10
SpringBoot種如何使用?EasyExcel?實現(xiàn)自定義表頭導(dǎo)出并實現(xiàn)數(shù)據(jù)格式化轉(zhuǎn)換
本文詳細介紹了如何使用EasyExcel工具類實現(xiàn)自定義表頭導(dǎo)出,并實現(xiàn)數(shù)據(jù)格式化轉(zhuǎn)換與添加下拉框操作,通過示例和代碼,展示了如何處理不同數(shù)據(jù)結(jié)構(gòu)和注解,確保數(shù)據(jù)在導(dǎo)出時能夠正確顯示和格式化,此外,還介紹了如何解決特定數(shù)據(jù)類型的轉(zhuǎn)換問題,并提供了解決方案2024-11-11
Spring Cloud下基于OAUTH2認證授權(quán)的實現(xiàn)示例
這篇文章主要介紹了Spring Cloud下基于OAUTH2認證授權(quán)的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

