두 문자열을 비교하는 Java 프로그램을 만들었습니다.
String s1 = "Hello";
String s2 = "hello";
if (s1.equals(s2)) {
System.out.println("hai");
} else {
System.out.println("welcome");
}
"환영"이 표시됩니다. 대소 문자를 구분한다는 것을 이해합니다. 하지만 내 문제는 대소 문자를 구분하지 않고 두 문자열을 비교하고 싶다는 것입니다. 즉, 출력이 hai
.
s1.equalsIgnoreCase(s2)
수행해야 할 모든 곳에서 수행하지 못할 수 있습니다. 문자열의 출처 (파일 또는 데이터베이스 또는 사용자 입력)를 찾아 대문자 (또는 소문자)로 변환하고 비교를 위해 .equals를 계속 사용하는 것이 좋습니다.
equalsIgnoreCase
접근 방식을 사용하십시오 . 근거를 위해 터키어 I 문제 및 유사한 유니 코드 문제를 읽어보십시오.
equalsIgnoreCase
는 "i"와 "I"를 비교할 때 true를 반환하기 때문에 터키어에 대해 잘못된 값을 반환하지만 false를 반환해야합니다. 따라서 로케일을 고려하고 싶다면 Collator
실제로 a 가 갈 길이라고 생각합니다.
toLowerCase
/ toUpperCase
수행하고 문자 단위로 수행하면 두 가지 다른 결과가 제공됩니다.