这里主要区别就在于,全角字符串的getBytes()的字解码和半角字符串的getBytes()字节码不一样。
半角的 字节码是 32,全角的字节码是 -95-95 ,我们只需在这里给它都替换成 32 就可以了。
我在这里提供了一个类方法,可以将全角空字节码 换成 32半角字节码。很有用哦。
public class RemoveSpaces {
public static final String removeSpace(String ss){
byte[] t = ss.getBytes();
for(int i=0;i<t.length;i++){
if(t[i] == -95 && t[i+1]==-95 ){
t[i]=32;
if(i+1==t.length-1){
t[i+1] = 0;
}else{
for(int j=i+1;j+1<t.length;j++){
t[j]=t[j+1];
if(j+1 == t.length-1) t[j+1] = 32;
}
}
}
}
return new String(t);
}
public static void main(String arg[]){
String test = "我 是 好 人";
String result=removeSpace(test );
System.out.println(test +"/n"+result);
}
}