我尝试拆分String" 1.1"到2个新的字符串:
String[] array = "1.1".split(".");
System.out.println(array[0]);
但我得到java.lang.ArrayIndexOutOfBoundsException
。
为什么?
答案 0 :(得分:6)
split
采用正则表达式。点字符.
用于匹配正则表达式中的任何字符,因此除非字符本身被转义,否则数组将为空
String[] array = "1.1".split("\\.");
答案 1 :(得分:1)
你需要逃脱点。
String[] array = "1.1".split("\\.");
System.out.println(array[0]);
如果您查看doc,您会发现split方法接受正则表达式。
在正则表达式.
中表示除新行之外的任何字符。
public String[] split(String regex) {
return split(regex, 0);
}
答案 2 :(得分:1)
您需要转义. with \\
,以便不将其视为正则表达式元字符,因为split采用正则表达式。你可以尝试这样:
String[] array = "1.1".split("\\.");
System.out.println(array[0]);
答案 3 :(得分:1)
尝试String [] array =" 1.1" .split(" \\。");
答案 4 :(得分:1)
你必须使用"1.1".split("\\.")