【问题标题】:Split a string between repeating characters在重复字符之间拆分字符串
【发布时间】:2012-12-14 07:12:54
【问题描述】:

我想获取任何给定的字符串并根据重复字符对其进行拆分。

例如,如果我要输入字符串abcaaabbc,我想输出一个字符串数组,等于:[abca, a, ab, bc]。每次一个字符重复时,我想开始一个新的字符串。

当然可以使用循环执行此操作,但我想知道是否可以使用String.split() 方法来实现它。如果是这样 - RegEx 会是什么?

【问题讨论】:

  • 无法理解您的问题。你能举一些其他的例子吗?

标签: java regex split


【解决方案1】:

标记输入字符串,其中前一个字符(look-behind (?<=(.)))与下一个字符(look-ahead (?=\\1))相同,\1 捕获 (.)

    String str = "abcbabaaabbc";
    String regex = "(?<=(.))(?=\\1)";        
    System.out.println(Arrays.toString(str.split(regex)));

【讨论】:

  • @SwapnilS:标记前一个字符(在(?&lt;=)后面看)与下一个字符相同(向前看(?=))的字符串。和\1 捕获(.)
【解决方案2】:

从性能的角度来看,我会坚持使用循环。它在 O(n) 时间内运行。众所周知, string.split(regex) 很慢。我最近用它代替了一个循环,发现它与 O(n) 循环相比是 O(n^2)。

K.I.S.S 校长在这里工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多