gpt4 book ai didi

java - 如何仅在两个单词之间出现一次而不是出现三次时才从字符串中删除空格?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:59:30 26 4
gpt4 key购买 nike

我是一名初学者,致力于差异和重新生成算法,但适用于字符串。我将补丁存储在一个文件中。要从旧字符串重新生成新字符串,我使用该文件。尽管代码有效,但我在使用空间时遇到了问题。

我使用 replaceAll("", ""); 来删除空格。当字符串是 [char][space][char] 时这很好,但当它像 [space][space][space] 时会产生问题。在这里,我希望保留空间(只有一个)。

我想到了 replaceAll("", "");。但这会在 [char][space][char] 类型中留下空格。我正在使用扫描仪扫描字符串。

有什么办法可以实现吗?

Input      Output
c => c
cc => cc
c c => cc
c c => This is not possible. Since there will be padding of one space for each character
c c => c c

最佳答案

我们还可以在有多个空格的地方拆分字符串,然后使用 StreamCollector API 将结果数组连接成一个字符串。

此外,我们将通过在 Stream#map 操作中使用 replaceAll() 来替换单个空格:

String test = "   this    is a test of     space in string    ";
//using the pattern \\s{n,} for splitting at multi spaces
String[] arr = test.split("\\s{2,}");
String s = Arrays.stream(arr)
.map(str -> str.replaceAll(" ", ""))
.collect(Collectors.joining(" "));
System.out.println(s);

输出:

 this isatestof spaceinstring

关于java - 如何仅在两个单词之间出现一次而不是出现三次时才从字符串中删除空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57981624/

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