에서 제거되는 대시 변경은 예측 가능한 결과를 생산 :넷빈즈, 문자열 비교의 결과는 이전에 넷빈즈에서 파일로드를 실행하고 비교를 위해 문자열 항목을 잡아 문자열
의 마음을 얻기 위해 simpliflied 오버(문제) 파일 1 :. UTF-8 인코딩은 파일 2 : ISO-8859-1
넷빈즈
String strFromFile1 = "A - B"; String strFromFile2 = "A - B";
(strFromFile1 == strFromFile2)이 참으로 평가됩니다.
: 없음 식별 패턴, (-)
그러나, 이클립스 프로젝트를 이동 한 후, 나는 문자열 값이 가끔 대시를 제거하고, 단지 내 많은 파일 중 하나에 대한 변경 것이다 때때로 발견 ECLIPSE
String strFromFile1 = "A B"; String strFromFile2 = "A - B";
은 (strFromFile1 == strFromFile2)가 거짓으로 평가 하였다.
비교가 올바르지 만 왜 첫 번째 문자열이 변경 되었습니까? 원본 텍스트 파일이 변경되지 않았습니다. 그들은 둘 다 대쉬를 포함했다. 그러나 각 파일의 문자 인코딩이 다릅니다.
왜 이런 일이 발생 했습니까? Eclipse가 특정 파일의 특정 문자를 무시하도록 선택하는 이유는 무엇입니까? 동일한 인코딩 유형 (ISO-8859-1, UTF-8)의 다른 파일에는이 문제가 발생하지 않았습니다.
문자열을 비교하는 데'=='을 사용하면 ** 일반적으로 작동하지 않음을 유의하십시오 http://stackoverflow.com/q/513832/2670892 –
물론 가능합니다. 나는 그 설명을 단순화했다. 하지만 실제로 null 값을 확인하고 equals() 메서드를 사용하는 사용자 지정 DeepEquals 함수를 사용했습니다. – TinkerTenorSoftwareGuy