You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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替换成你实际的类名)

处理逻辑

  1. 按单个空格拆分字符串,连续空格会生成空片段,直接通过String.join过滤掉空片段并拼接,彻底消除字符之间的多余空格(比如"H i"变成"Hi");
  2. 拼接后单词之间可能存在多个连续空格(原有效空格被多余空格包围导致),用正则\\s+匹配连续空格并替换成单个有效空格;
  3. 最后用正则\\s*:\\s*匹配冒号前后的所有空格,替换成无空格的冒号,满足示例格式要求。

内容的提问来源于stack exchange,提问作者cdub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:07:25