无法用正则 \\s+去除空格
1. 普通的空格
这一串是我自己手动的空格
进行正则
String text = "a b ccc ddd eee f g";
String[] split = text.split("\\s+");
for(String s : split){
System.out.println(s);
}
输出结果:
2. 特殊的空格
自己利用爬取到的数据转换成字符串类型的数据
进行正则
String text = "深圳-宝安区 无需经验 大专 招2人 07-31发布";
String[] split = text.split("\\s+");
for(String s : split){
System.out.println(s);
}
输出结果:
刚开始不知道原因,就利用正则 \\s*
来进行截取,发现可以把所有都截成一个…
使用bebug无意间点开了value,发现这个空格的ascii码是 160
于是好奇自己手打空格的ascii码
发现是32
于是百度了一下特殊空格ascii160得到解决方法:
得到方法: 利用不间断空格的Unicode编码来移除它,其编码为\u00A0。
于是可以这样写
String text = "深圳-宝安区 无需经验 大专 招2人 07-31发布";
String[] split = text.split("\\u00A0+");
for(String s : split){
System.out.println(s);
}
说明: 把特殊的空格复制到文章这里,然后重新复制回去…会变成ascii码32的空格
结果