gpt4 book ai didi

java - 如何在任意数量的空格上拆分字符串,同时保留所有空格?

转载 作者:行者123 更新时间:2023-11-30 10:26:37 24 4
gpt4 key购买 nike

我有一个类似 "a b c d" 的字符串(注意越来越多的空格)我想把它拆分为:["a ", "b ", "c ", "d"] .

我已经看到了后视的用法,但如果预期的分隔符可能由多个字符组成,它似乎不起作用,例如,这不起作用:


String[] parts = text.split("(?<=([\\s]+))");

因为它返回第一个之后的额外空格作为单独的匹配项,也就是说,它返回 ["a ", "b ", " ", "c ", " ", " ", "d"] .

有没有一种方法可以在单行中完成,或者我是否必须在后期处理中合并回多余的空间?

最佳答案

matcher.find() 循环中使用以下内容代替 split 进行匹配:

\S+\s*|\s+

此正则表达式匹配一个或多个非空白字符后跟零个或多个空白字符。

RegEx Demo

代码:

final String regex = "\\S+\\s*|\\s+";
final String string = "a b c d";

final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);

List<String> result = new ArrayList<>();

while (matcher.find()) {
result.add( matcher.group(0) );
}

System.out.println(result);

关于java - 如何在任意数量的空格上拆分字符串,同时保留所有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45620515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com