您的位置:首页 > 其它

关于String字符串空格的处理[用(char)12288解决空格问题]

2017-05-31 21:54 691 查看
我们经常会遇到要处理字符串的情况,而很多的时候是对于其中的空格处理尤其是文章段落的开始,这时候会经常遇到没法去除空格的情况,这时候需要冷静判断当前的空格是什么。因为这个问题坑过很多次了,特地记录,希望可以帮到你。

解决过程如下所示:

1.获取字符串中空格所在位置的ascii



2.用箭头的方式去除



3.失败的尝试









接下来是网上的一些资料也可以参考。点击打开链接

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

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

下载地址点击打开链接

或者gradle 导入
compile 'org.apache.commons:commons-lang3:3.6'


Maven导入

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>


如果我自己写,我会采用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 static String remove(String resource, char ch) {
StringBuffer buffer = new StringBuffer();
int position = 0;
char currentChar;
while (position < resource.length()) {
currentChar = resource.charAt(position++);
if (currentChar != ch) buffer.append(currentChar);
}
return buffer.toString();
}

public static String removeBlank(String testString) {
testString = testString.trim();
//中文空格从上文复制
testString = testString.replaceAll(" ", "");
//中文空格自己打 发现无效
testString = testString.replaceAll(" ", "");
//制表符
testString = testString.replaceAll("    ", "");
//英文空格
testString = testString.replaceAll(" ", "");
//可以替换大部分空白字符, 不限于空格 \s 可以匹配空格、制表符、换页符等空白字符的其中任意一个
testString = testString.replaceAll("\\s*", "");
return testString;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: