最近編個(gè)小程序,要涉及到讀取用戶輸入的文件路徑,并根據(jù)其保存到相應(yīng)的目錄。
由于用戶輸入的是一般的字符表達(dá)式,比如“D:\document\myprogram\first.java”.需要將'\'換成'\\'才行。剛開(kāi)始以為replaceAll("\\", "\\\\”)就可以了。而后來(lái)發(fā)現(xiàn)需寫(xiě)成replaceAll("
\\\\", "
\\\\\\\\”)才行。自己又編了個(gè)程序測(cè)試一下:
String s = "D:\\documents\\first.java"
String ss = ss = s.replaceAll("
\\\\", "
\\\\\\\\”);
System.out.println("s= " + s);
System.out.println("ss=" + ss);
結(jié)果輸出:
s= D:\documents\first.java
ss= D:\\documents\\first.java
后來(lái)仔細(xì)想想才明白,首先,java會(huì)把“\\\\”解釋成一個(gè)字符串,接下來(lái),由于replaceAll是以正則表達(dá)式作為參數(shù),所以“\\”被解釋成一個(gè)regex。對(duì)于一個(gè)regex來(lái)說(shuō)這就代表著一個(gè)字符,就是“\”。對(duì)后面的那個(gè)8個(gè)\來(lái)說(shuō),最終會(huì)被解釋成“\\”。
我喜歡java
希望能在這個(gè)純潔的技術(shù)討論區(qū)學(xué)到更多的東西……
也希望能在這里交到更多的朋友,認(rèn)識(shí)更多的牛人……