出於某種原因,我可以使拆分方法工作。老實說,我不知道我做錯了這個驗證碼:錯誤字符串拆分
String address = "0.0.0.0";
String [] adr = address.split(".");
System.out.println(address);
System.out.println(adr[0]);
我對數組訪問得到一個索引出界失誤。任何關於我哪裏出錯的想法?
出於某種原因,我可以使拆分方法工作。老實說,我不知道我做錯了這個驗證碼:錯誤字符串拆分
String address = "0.0.0.0";
String [] adr = address.split(".");
System.out.println(address);
System.out.println(adr[0]);
我對數組訪問得到一個索引出界失誤。任何關於我哪裏出錯的想法?
split()
方法預計regular-expression,而不是一個文字字符串,並且「。」字符在正則表達式中有特殊的含義。分割字面上的「。」字符,您需要將其轉義,以便正則表達式解析器明白這就是您想要的。
試試這樣說:
String [] adr = address.split("\\.");
注意,有必要基本上轉義兩次,因爲你想要的正則表達式解析器得到字符串,這實際上是「\」,「\\」。當以字符串文字表示時。 「\\」解析爲文字「\」字符,因此正則表達式解析器被賦予「\。」,然後解析爲文字「。」。字符。
另外請注意,stackoverflow解析器似乎要忽略以「\」開頭的某些序列,這使得該帖子易於編輯。
「。」是正則表達式中的一個特殊字符,split的參數是一個正則表達式。用它逃脫。 (即「\\。」)。
應該是「\\」。自「。」在java中不是一個易犯的字符 – yurib
這就是我以爲我寫的:-) – bmargulies
String address = "0.0.0.0";
String [] adr = address.split("\\.");
System.out.println(address);
System.out.println(adr[0]);
thnks很多:),我會有同樣的問題 – HCarrasko