我在比较两个字符串时遇到问题。它总是导致错误。我认为空间的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
,因此每次比较两个时它都会给出错误。
如何解决此问题?
答案 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);
}
}