String unicode问题

时间:2015-02-03 09:26:57

标签: java string unicode

我在比较两个字符串时遇到问题。它总是导致错误。我认为空间的unicode存在问题。

String actual =   "cars in";
String expected = "cars in";
for(int i=0;i<expected.length();i++){
        System.out.print(expected.codePointAt(i)+" ");
        System.out.print(actual.codePointAt(i)+" ");
        System.out.println();
    }
if(actual.equals(expected)){
        System.out.println(true);
    }else
        System.out.println(false);

我也尝试过打印codePoint,结果如下。

99 99 
97 97 
114 114 
115 115 
32 160 
105 105 
110 110 

所以空间的值不同,在第一个字符串中值为32,在第二个字符串中,值为160,因此每次比较两个时它都会给出错误。

如何解决此问题?

1 个答案:

答案 0 :(得分:-1)

你可以尝试在空间的基础上分割字符串 - :

String actual = "cars in";
String expected = "cars in";
String[] str1 = actual.split(" ");
String[] str2 = expected.split(" ");
for (int i = 0; i < str1.length; i++) {
    if (str1[i].equals(str2[i])) {
        System.out.println(true);
    }
}