java split函數報錯
阿新 • • 發佈:2018-01-18
reg split函數 arr cep html app static mpi 函數 類的
執行如下的代碼
public class App {
public static void main(String[] args) {
String str = "123+456+712";
String[] strings = str.split("+");
System.out.println(Arrays.toString(strings));
}
}
拋出異常
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character ‘+‘ near index 0
- ^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.
出現這種情況的原因是因為String
類的分割方法split
接受的參數是一個正則表達式,而+
這個字符是正則表達式的元字符,需要進行轉義,不然就會拋出異常。String
split
方法如下。
public String[] split(String regex) {
return split(regex, 0);
}
java的正則中的轉義使用\\
,因此修改之。\\+
將+
從元字符轉換成普通的+
字符。
public class App { public static void main(String[] args) { String str = "123+456+712"; String[] strings = str.split("\\+"); System.out.println(Arrays.toString(strings)); } }
參考
讀懂正則表達式就這麽簡單
Java正則表達式的語法與示例
java split函數報錯