Java去除字符串中的空格

Strim或者Trip都是只能去除头部和尾部的空字符串。中间的部分是不能够去除的!

推荐使用ApacheCommonse的StringUtils.deleteWhitespace("a b c"); 删除所有空格。

如果我自己写,我会采用foreache遍历每一个字符串中的字符然后利用StringBuilder追加 或者使用 Replace进行替换,替换的时候对于多个空格可能匹配有问题,利用正则表达式?

网上找到了一个文章,感觉不太全,不过可以参考:


1. String.trim() 

trim()是去掉首尾空格 



2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间 

String str = " hell o "; 
String str2 = str.replaceAll(" ", ""); 
System.out.println(str2); 



3.或者replaceAll(" +",""); 去掉所有空格 



4.str = .replaceAll("\\s*", ""); 

可以替换大部分空白字符, 不限于空格 
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个 



5.或者下面的代码也可以去掉所有空格,包括首尾、中间 

public String remove(String resource,char ch) 

StringBuffer buffer=new StringBuffer(); 
int position=0; 
char currentChar; 

while(position

currentChar=resource.charAt(position++); 
if(currentChar!=ch) buffer.append(currentChar); } return buffer.toString(); 
}

转:

http://www.cnblogs.com/LiuChunfu/p/5661810.html

<think>好的,用户现在问的是如何在Java去除字符串中的空格。之前他们问了如何将int转换为Long,现在转向字符串处理,可能是在处理数据转换后的清理工作,比如用户输入或者文件读取后的字符串处理。 首先,我需要确定用户的具体需求。去除空格可能有几种情况:去掉所有空格,包括中间的空格;或者只去掉首尾的空格。不同的情况对应不同的方法。 用户可能没有明确说明,所以需要我列举常见的方法,并说明各自的适用场景。比如,Java中的String类有trim()方法,但只能去掉首尾空格。如果要去掉所有空格,可以用replace或replaceAll方法。此外,Java 11引入的strip()方法可能也要提到,因为它在处理Unicode空格时更准确。 接下来,我需要考虑用户可能的背景。他们可能刚开始学习Java,所以需要给出简单明了的示例代码,并解释每个方法的区别。比如,trim()和strip()的区别,replace和replaceAll的正则表达式使用。 另外,要注意用户可能不知道replaceAll使用的是正则表达式,而replace是字面替换,所以性能上replace更好。需要指出这一点,帮助用户选择合适的方法。 还要考虑是否有特殊情况,比如用户需要处理的不只是空格,还有其他空白字符(如制表符、换行符),这时候strip()或者正则表达式\s会更合适。同时,提醒用户注意字符串不可变性,这些方法返回的是新字符串,原字符串不变。 最后,总结推荐的方法,根据不同场景给出建议,比如首尾空格用strip()或trim(),所有空格用replace,复杂情况用replaceAll。确保用户能根据需求选择正确的方法,避免常见的错误,比如误用replaceAll导致性能问题。在</think> Java去除字符串中的空格有多种方法,具体取决于需求(如仅去除首尾空格,或移除所有空格)。以下是常见的实现方式及示例: --- ### 1. **去除首尾空格**(保留中间空格) - **`trim()` 方法** 移除字符串开头和结尾的空白符(包括空格、制表符、换行符等): ```java String str = " Hello World "; String trimmed = str.trim(); // 结果:"Hello World" ``` - **注意**:`trim()` 只能处理 ASCII 空白符(如 `' '`, `\t`, `\n`),对 Unicode 空格(如 `\u2005`)无效。 - **`strip()` 方法(Java 11+)** 更现代的替代方案,支持 Unicode 空白符: ```java String str = " Hello World "; String stripped = str.strip(); // 结果:"Hello World" ``` --- ### 2. **去除所有空格**(包括中间的空格) - **`replace()` 方法** 直接替换所有空格字符: ```java String str = " Hello World "; String noSpace = str.replace(" ", ""); // 结果:"HelloWorld" ``` - **正则表达式替换(`replaceAll()`)** 使用正则表达式 `\\s` 匹配所有空白符(包括空格、制表符、换行符等): ```java String str = " Hello \t World\n"; String noSpace = str.replaceAll("\\s", ""); // 结果:"HelloWorld" ``` - **注意**:`replaceAll()` 支持正则表达式,但性能略低于 `replace()`。 --- ### 3. **按需去除部分空格** - **仅去除开头空格** ```java String str = " Hello World "; String result = str.replaceAll("^\\s+", ""); // 正则匹配开头空格 ``` - **仅去除结尾空格** ```java String str = " Hello World "; String result = str.replaceAll("\\s+$", ""); // 正则匹配结尾空格 ``` --- ### 4. **处理特殊空格类型** - **Unicode 空格(如 `\u2005`)** 使用 `\\p{Zs}` 正则表达式匹配所有 Unicode 空格: ```java String str = "Hello\u2005World"; String noSpace = str.replaceAl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值