有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

|在java字符串中无法识别。split()方法

我对java字符串有问题。分割法

我有一个像这样的字符串,它等于-freshness|originality。然后按如下方式拆分此字符串:

   String words[] = word.split("|");

如果我随后输出单词[1],如下所示:

    t1.setText(words[1]); 

它给了我f的值。我已经计算出这是单词freshness中的f

如何正确分割字符串,使单词[1]实际上是originality?谢谢你的帮助


共 (4) 个答案

  1. # 1 楼答案

    您需要转义管道,因为java将其识别为正则表达式或运算符

    line.split("\\|")
    

    "|"get被解析为“空字符串或空字符串”,这不是您试图查找的内容

    记录在案

    …?.+^:-$*

    都是正则表达式运算符,需要转义

  2. # 2 楼答案

    你需要转义这个角色。使用"\\|"

    有关正则表达式转义字符here的详细信息

  3. # 3 楼答案

            String test ="freshness|originality";
            String[] splits = test.split("\\|");
            String part1 = splits[0]; // freshness
            String part2 = splits[1]; // originality
    
  4. # 4 楼答案

    你应该逃避它:

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

    请在此处的类似问题中检查此解释:Why does String.split need pipe delimiter to be escaped?

    String对象的split()方法有一个正则表达式作为参数。这意味着未转换的|不会被解释为字符,而是被解释为或,表示“空字符串或空字符串”