java string.split函数

时间:2012-11-09 23:03:22

标签: java split

Str = "abc|def|ghi^jkl|mno";
String[] Flds = Str.split("[|]"); 
//Flds[0] = "abc";
//Flds[1] = "def";
//Flds[2] = "ghi^jkl";
//Flds[3] = "mno";

现在我想知道Flds [2]的子字段,但以下都没有工作 -

String[] Flds = Str.split("[^]");

String[] Flds = Str.split("[^]]");

String[] Flds = Str.split("^");

3 个答案:

答案 0 :(得分:5)

您应该拆分Flds[2]

String[] subFlds2 = Flds[2].split("\\^");

此外,^regular expressions中的保留字符。您使用[]来转义|,但^也表示[]括号内的内容。

答案 1 :(得分:1)

双重逃脱克拉:

Flds[2].split("\\^")

Java的一次转义,regex的另一次转义。

答案 2 :(得分:0)

请注意: String#split,接受正则表达式的参数:

  public String[] split(String regex)

^是正则表达式中的特殊字符,表示该行的开头。要将它用作文字,请在它之前使用转义字符,例如下面:

String[] Flds = Str.split("[\\^]");

我认为,如果没有大括号,它应该可以正常工作,例如

String[] Flds = Str.split("\\^");

您可以在此处找到有关正则表达式字符类的更多信息:Regex Char Classes