慕運維8079593
2019-03-15 15:15:03
我想分割一個字符串,如:C:\Program\files\images\flower.jpg但是,使用下面的代碼:String[] tokens = s.split("\\");
String image= tokens[4];有錯誤:08-07 12:47:35.960: E/AndroidRuntime(6921): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1如何實現(xiàn)?。?
4 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗 獲得超8個贊
string s = @"C:\Program\files\images\flower.jpg";
String[] tokens = s.Split('\\'); String image= tokens[4];
試一下

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗 獲得超14個贊
private static String s = "C:\\Program\\files\\images\\flower.jpg"; /** * @param args */ public static void main(String[] args) { String[] split = s.split("\\\\"); for(String ss: split) { System.out.println("s ="+ss); } }
\是一個轉(zhuǎn)義符,而“\”也是需要轉(zhuǎn)義的

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗 獲得超2個贊
// 因為反斜線是正則表達(dá)式中的特殊字符,所以需要轉(zhuǎn)義。
// 那么,傳遞到正則表達(dá)式解析器的地方,就需要兩個反斜線(\)
// 而你的代碼屬于Java代碼,是屬于字面量的,所以編譯器在讀取源文件的時候會進行一次轉(zhuǎn)義
// 所以需要4個反斜線.如果這兩個反斜線是從其他地方獲取的,那么可以只有兩個。
// 你也可以使用 System.out.println("\\\\");
測試一下輸出的結(jié)果,就是真正的值.
String[] tokens = s.split("\\\\");

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊
應(yīng)該這么寫:
String[] tokens = "C:\\Program\\files\\images\\flower.jpg".split("\\\\"); String image = tokens[4];
添加回答
舉報
0/150
提交
取消