如何移除字符串中的指定单词且不产生多余空格?
解决字符串替换后出现多余空格的问题
嘿,这个小问题我太熟悉啦!咱们先掰扯清楚为啥会出现多余空格:
你的原字符串是 "Senior Account Manager Presidio Networke",这里Manager和Presidio之间有一个空格,Presidio和Networke之间又有一个空格。当你用title.replace("Presidio","")把Presidio本身去掉后,这两个空格就凑到一块儿了,自然就出现了多余的空格。
给你几个实用的解决方案,按需挑着用:
精准替换(适合确定目标词后带空格的场景)
直接把目标词和后面的空格一起替换掉,这样就不会留下多余空格了:String title = "Senior Account Manager Presidio Networke"; title = title.replace("Presidio ", ""); // 注意Presidio后面带空格执行后结果就是:
Senior Account Manager Networke,完美解决问题。通用去重空格法(兼容各种空格情况)
如果担心替换后可能出现多个连续空格(比如目标词前后都有空格的情况),可以先替换目标词,再用正则把所有连续空格替换成单个空格:String title = "Senior Account Manager Presidio Networke"; title = title.replace("Presidio", "").replaceAll("\\s+", " ");这里
\\s+匹配一个或多个空白字符,替换成单个空格,不管替换后出现多少个连续空格都能统一处理。正则一次性替换(更灵活)
用正则表达式直接匹配目标词及其前后的空格,一次性完成替换:String title = "Senior Account Manager Presidio Networke"; title = title.replaceAll("\\s*Presidio\\s*", " ").trim();解释一下:
\\s*匹配0个或多个空格- 替换后用单个空格连接前后内容
- 最后
trim()去掉字符串首尾可能出现的多余空格
这样不管目标词在开头、中间还是结尾,都能稳妥处理。
内容的提问来源于stack exchange,提问作者Ashok Kumar
相关产品推荐
相关产品推荐

