Java中的split()方法不适用于点(。)

时间:2011-10-28 23:22:40

标签: java string split

7 个答案:

答案 0 :(得分:424)

java.lang.String.split分割正则表达式,正则表达式中的.表示“任何字符”。

尝试temp.split("\\.")

答案 1 :(得分:60)

documentation on split()说:

  

将此字符串拆分为给定 regular expression 的匹配项。

(强调我的。)

点是正则表达式语法中的特殊字符。如果希望拆分为文字字符串模式,请在参数上使用Pattern.quote() split():

String[] words = temp.split(Pattern.quote("."));

答案 2 :(得分:9)

尝试:

String words[]=temp.split("\\.");

方法是:

String[] split(String regex) 

“”。是正则表达式中的保留字符

答案 3 :(得分:9)

该方法采用正则表达式,而不是字符串,并且点在正则表达式中具有特殊含义。像split("\\.")一样逃避它。你需要一个双反斜杠,第二个逃脱第一个反斜杠。

答案 4 :(得分:5)

\\.是一个简单的答案。这是一个简单的代码供您使用。

while (line != null) {
    //             
    String[] words = line.split("\\.");
    wr = "";
    mean = "";
    if (words.length > 2) {
        wr = words[0] + words[1];
        mean = words[2];

    } else {
        wr = words[0];
        mean = words[1];
    }
}

答案 5 :(得分:3)

工作正常。你看过the documentation了吗?该字符串将转换为正则表达式。

.是匹配所有输入字符的特殊字符。

与任何正则表达式特殊字符一样,您使用\进行转义。 Java字符串转义需要额外的\

答案 6 :(得分:2)

    private String temp = "mahesh.hiren.darshan";

    String s_temp[] = temp.split("[.]");

  Log.e("1", ""+s_temp[0]);