作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是一名初学者,致力于差异和重新生成算法,但适用于字符串。我将补丁存储在一个文件中。要从旧字符串重新生成新字符串,我使用该文件。尽管代码有效,但我在使用空间时遇到了问题。
我使用 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
最佳答案
我们还可以在有多个空格的地方拆分字符串,然后使用 Stream
和 Collector
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/
我是一名优秀的程序员,十分优秀!