java String split,空数组

时间:2014-04-04 11:35:55

标签: java string split

我尝试拆分String" 1.1"到2个新的字符串:

String[] array = "1.1".split(".");
System.out.println(array[0]);

但我得到java.lang.ArrayIndexOutOfBoundsException

为什么?

5 个答案:

答案 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("\\.")