【问题标题】:java split () method with two delimiters [duplicate]带有两个分隔符的java split()方法[重复]
【发布时间】:2016-07-25 21:04:44
【问题描述】:

我有一个类似

的字符串
abababa:nsndnfnng.leleelld_kdjdh

我想把它拆分成“:”和“.”,这样我得到一个列表如下:

{abababa, nsndnfnng, eleelld_kdjdh}

如何通过调用 split() 一次来做到这一点?

【问题讨论】:

  • 只需在字符串上调用 split() 2 次,在原始字符串上调用一次,然后在第一步生成的子字符串上调用。
  • 寻找更好的方法。 tnx 任何方式。

标签: java


【解决方案1】:

您正在寻找String#split 方法。由于它接受将描述分隔符的正则表达式,因此您的代码可能看起来像

String[] result = yourString.split("[:.]");

【讨论】:

    【解决方案2】:

    您可以只使用带有正则表达式参数的String.split("[:.]")

    常见陷阱如果您只想单独拆分.,则必须转义点String.split("\\.")(或者在这里也使用字符类String.split("[.]")

    【讨论】:

    • :. 在字符类中并不特殊。没有必要在那里逃脱它们。
    • "请注意,点 . 需要转义。"如果. 不在[...] 内,那将是真的。大多数正则表达式元字符在字符类中没有特殊含义,因为它的目的是表示单个字符,这意味着我们甚至可以写成[+/:*()],它将表示单个+/:*(或@ 987654337@ 个字符。 [.] 也一样。你可以在这里找到更多信息:regular-expressions.info/charclass.html#special
    • 你是对的,因为它们在 Character 类中,没想到
    • 如果您同意“请注意,点 . 需要转义”是不正确的(因为 . 放置在 [..] 中)请随时从您的答案中删除该部分不正确。
    【解决方案3】:

    使用正则表达式并拆分字符串

    例子:

    public static void main(String[] args) {
        String REGEX_PATTERN = "[:.\\_]";
        String s1 = "abababa:nsndnfnng.leleelld_kdjdh";
        String[] result = s1.split(REGEX_PATTERN);
        for (String myString : result) {
            System.out.println(myString);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多