如何在Java中去除字符串字符间的多余空格?
问题描述
从文件提取文本时,每个字符(包括有效空格)之间存在多余空格,例如输入字符串:"1 : H i , I ' a m a S t r i n g .",需要实现cleanString方法,将其处理为预期输出:"1: Hi, I'am a String."
解决方案
实现代码
public String cleanString(String string) { // 按空格分割并过滤空片段,拼接消除字符间多余空格 String merged = String.join("", string.split(" ")).replaceAll("\\s+", " "); // 清理冒号前后的所有空格 merged = merged.replaceAll("\\s*:\\s*", ":"); return merged; } // 测试示例 public static void main(String[] args) { String oldString = "1 : H i , I ' a m a S t r i n g ."; System.out.println(new YourClassName().cleanString(oldString)); // 输出:1: Hi, I'am a String. }
(注:把YourClassName替换成你实际的类名)
处理逻辑
- 按单个空格拆分字符串,连续空格会生成空片段,直接通过
String.join过滤掉空片段并拼接,彻底消除字符之间的多余空格(比如"H i"变成"Hi"); - 拼接后单词之间可能存在多个连续空格(原有效空格被多余空格包围导致),用正则
\\s+匹配连续空格并替换成单个有效空格; - 最后用正则
\\s*:\\s*匹配冒号前后的所有空格,替换成无空格的冒号,满足示例格式要求。
内容的提问来源于stack exchange,提问作者cdub
相关产品推荐
相关产品推荐

