将字符串拆分为重复的字符
我想将字符串“ aaaabbbccccaaddddcfggghhhh”拆分为“ aaaa”,“ bbb”,“ cccc”。“ aa”,“ dddd”,“
c”,“ f”等。
我尝试了这个:
String[] arr = "aaaabbbccccaaddddcfggghhhh".split("(.)(?!\\1)");
但这会吃掉一个字符,因此使用上面的正则表达式我得到“ aaa”,而我希望它成为“ aaaa”作为第一个字符串。
我该如何实现?
回答:
试试这个:
String str = "aaaabbbccccaaddddcfggghhhh";String[] out = str.split("(?<=(.))(?!\\1)");
System.out.println(Arrays.toString(out));
=> [aaaa, bbb, cccc, aa, dddd, c, f, ggg, hhhh]
说明:我们想将字符串分成相同字符的组,因此我们需要找出每个组之间的“边界”。我使用Java语法进行正向后看以选择前一个字符,然后使用负向前看并带有向后引用,以验证下一个字符与前一个字符不同。实际上没有消耗任何字符,因为仅使用了两个环视断言(即,常规表达式为零宽度)。
以上是 将字符串拆分为重复的字符 的全部内容, 来源链接: utcz.com/qa/409073.html