2014-10-05 2 views
-2

두 객체를 문자열 속성으로 비교해야하는데 compareTo() 메소드를 사용하지 않고 어떻게 할 수 있습니까?compareTo를 사용하지 않고 Java에서 문자열을 비교하는 방법은 무엇입니까?

public int compareTo(className b){ 
if (b instanceof className){ 
     className a = (ClassName) b; 
    if (this.stringName==a.stringName) return 0; 
    if (this.stringName > a.stringName) return 1; // <- How can I know if it this bigger or smaller? Can't use < > operators on strings. 
     else 
      return -1; 
} 
+2

왜 compareTo를 사용할 수 없습니까? –

+1

글쎄, 당신이 그것을 호출해야합니다 compareTo에서 코드에 붙여 넣을 수 있습니다. 그래도 강사가 마음에 들지 않을 수도 있습니다. –

+1

또는 클래스의 equals 메소드를 정의하여 요구 사항을 충족 시키십시오. –

답변

2

먼저, 지 어떤지를 비교하는 == 연산자를 사용하지 마십시오

내 코드는 다음과 같이 보입니다. 이 연산자는 객체 ID를위한 연산자입니다. 그러나 동일한 문자열을 나타내는 두 개의 다른 객체를 가질 수 있습니다. 대신 String.equals() 메서드를 사용하십시오.

String.compareTo() 메서드는 문자열을 비교하기위한 선택 방법입니다. 그것은 정확하게 그것을 의미합니다.

compareTo() 메서드를 구현하려는 경우 개별 문자 (각각 char 유형, 방법 String.charAt() 참조)를 반복 할 수 있습니다. char은 기본 유형이므로 연산자 ==, <>을 사용하여 두 문자를 비교할 수 있습니다. 나는 당신이 혼자서 그것을 시도해서 배우고 싶기 때문에, 전체 해결책을 배치하지 않을 것이다.

관련 문제