提问人:skyRain 提问时间:11/11/2023 更新时间:11/11/2023 访问量:58
字符串中的字符组 [已关闭]
Groups of characters in a string [closed]
问:
我需要解决一个问题,在 Java 中,我将用空格分隔的一行中显示字符组
例:
LLooondddddon
输出:
LL ooo dddd
也就是说,您需要显示字符组,其中每组至少包含 2 个字符
答:
1赞
Tim Biegeleisen
11/11/2023
#1
我们可以通过正则表达式拆分后跟流来处理这个问题:
String input = "LLooondddddon";
List<String> parts = Arrays.stream(input.split("(?<=(.))(?!\\1)"))
.filter(x -> x.length() >= 2)
.collect(Collectors.toList());
System.out.println(parts); // [LL, ooo, ddddd]
使用的正则表达式模式与字符串中前后字符不相同的任何位置匹配:
(?<=(.))
前一个字符中的后视和捕获\1
(?!\1)
然后向前看并断言以下字符不是\1
请注意,环视宽度为零,这意味着在拆分期间不会使用任何字符。
评论