두 문자열을 비교하는 동안 문제가 발생했습니다. 항상 false가됩니다. 우주의 유니 코드 문제가 있다고 생각합니다.문자열 유니 코드 문제
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
로오고있다.
이 문제를 어떻게 해결합니까? 당신이 공간에 기초하여 문자열을 spilitting 시도 할 수
'160'(32) 그냥 * 공간 * HTTP 경우 * A * 비 분리 공간입니다. org/wiki/Non-breaking_space –
그래서 어떻게하면 실제 결과를 얻을 수있는 문자열을 비교할 수 있습니까? –
'String replace()'를 사용하여 줄 바꿈하지 않는 공백을 prdinary 공백으로 변환 할 수 있습니다. –