我想把字符串"aaaabbbcccaaddddcfggghhhh"分成"aaaa","bbb","cccc"."aa","dddd","c","f"等.
我试过这个:
String[] arr = "aaaabbbccccaaddddcfggghhhh".split("(.)(?!\\1)");
Run Code Online (Sandbox Code Playgroud)
但这会占用一个角色,所以用上面的正则表达式我得到"aaa",而我希望它是"aaaa"作为第一个字符串.
我该如何实现这一目标?
是否有一个正则表达式可以将String.split()字符串分解成连续的字符 - 即分割下一个字符与前一个字符不同的地方?
这是测试用例:
String regex = "your answer here";
String[] parts = "aaabbcddeee".split(regex);
System.out.println(Arrays.toString(parts));
Run Code Online (Sandbox Code Playgroud)
预期产量:
[aaa, bb, c, dd, eee]
Run Code Online (Sandbox Code Playgroud)
虽然测试用例只有字母作为输入,但这只是为了清晰起见; 输入字符可以是任何字符.
请不要提供涉及循环或其他技术的"解决方法".
问题是为代码找到正确的正则表达式,如上所示 - 即只使用split()而不使用其他方法调用.找到能够"完成工作"的代码并不是问题.