Split方法在Java中返回空数组

时间:2015-02-28 06:53:14

标签: java arrays exception

我遇到了split函数返回空白数组的问题。从数组中调用任何索引时,它会抛出索引超出范围的异常。这是代码:

class splitNumber {
    public static void main(String[] args) {
        String number = "3.84";
        String[] sep = number.split(".");
        System.out.println(sep[0]);
    }
}

是否有任何修复或解决方法?我正在使用Java SE 7。

3 个答案:

答案 0 :(得分:2)

如其他地方所述,String#split采用正则表达式。构造该正则表达式的另一种方法是使用Pattern#quote

String number = "3.84";
String[] sep = number.split(Pattern.quote("."));
System.out.println(Arrays.toString(sep));

这样可以避免输入一堆繁琐的逃脱字符。

答案 1 :(得分:1)

“”。是正则表达式中的特殊字符,字符串的split方法接受正则表达式,您需要将其转义为:

String[] sep = number.split("\\.");

答案 2 :(得分:0)

使用“\。”

“请注意,这需要一个正则表达式,所以请记住在必要时转义特殊字符,例如,如果要分割句点。这意味着正则表达式中的”任何字符“,请使用split(”\。“)或split (Pattern.quote(”。 “))。”

How to split a string in Java