字符串中的字符组 [已关闭]

Groups of characters in a string [closed]

提问人:skyRain 提问时间:11/11/2023 更新时间:11/11/2023 访问量:58

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

8天前关闭。

社群在 8 天前审查了是否重新打开这个问题,并将其关闭:

原始关闭原因未解决

我需要解决一个问题,在 Java 中,我将用空格分隔的一行中显示字符组

例:

LLooondddddon

输出:

LL ooo dddd

也就是说,您需要显示字符组,其中每组至少包含 2 个字符

Java 字符串

评论

3赞 QBrute 11/11/2023
你的问题是什么?你的代码在哪里?你所写的只是一些要求。

答:

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

请注意,环视宽度为零,这意味着在拆分期间不会使用任何字符。