는 내가 equalsIgnoreCase 방법에서 특히, 자바 SE7 String 클래스의 디 컴파일 된 소스를 찾고 어떤 이상한로 생각 난 것은 (while 루프에서 수행 생략 현지 바르) 다음 줄을이었다 :String.equalsIgnoreCase가 왜 개별 문자의 대문자와 소문자 버전을 비교합니까?
if (((c1 = this.value[(o1++)]) != (c2 = target[(o2++)]))
&& (toUpperCase(c1) != toUpperCase(c2))
&& (toLowerCase(c1) != toLowerCase(c2))) {
return false;
}
을
그리고 왜 c1과 c2가 대문자와 소문자 형식 모두에서 비평 행성을 검사하는지 궁금했습니다. 분명히 대문자 비교가 동일하다면, 소문자는 결코 도달하지 않을 것입니다 ... 그러나 이것으로부터, 대문자 (c1)! = 대문자 (c2)와 문자가 여전히 동일 할 때가 있다고 믿게되었습니다 소문자로 비교했다.
제안 사항?
일부 비 라틴 문자는 대문자와 소문자를 구분하지 않을 수도 있고, 그 반대의 경우도있을 수 있습니까? 어쨌든 좋은 질문입니다. – Mena
@ 메나 - 실제로는 좋지 않습니다. 1) 그것은 중복이다. 2) 대답은 소스 코드 주석에 있으며, 소스 코드는 여러 곳에서 자유롭게 사용할 수 있습니다. –
@StephenC 죄송합니다. 내 숙제를 했어야 했어. – Mena