"숫자(공백)숫자(공백)..."형식으로 된 스트링 배열이 있을 때

예)

arr[0]="5 10 "
arr[1]="1 4 10 "
arr[2]="2 3 10 "

.

.

.


이 스트링들 sorting하려고 한단말이야. 왼쪽부터 비교해가면서 작은 숫자를 가진 스트링이 배열의 맨 처음에 오도록.

예)

arr[0]= "1 4 10 "
arr[1]= "2 3 10 "
arr[2]= "5 10 "

.

.

.



String 두개와 int 하나를 매개변수로 받는 메소드를 만들었는데

여기서 i는 비교할 스트링 line1, line2의 인덱스이기 때문에

0으로 호출 시작해서 재귀호출할꺼임.


public static boolean compare(String line1, String line2, int i){       
    if(i<Math.min(line1.length(), line2.length())-1){                      //인덱스 i가 line1이나 line2의 길이보다 크지 않을 때           
        if(line1.charAt(i)>line2.charAt(i))                                        //line1의 i번째 문자가 line2의 i번째 문자보다 크면 true
            return true;                                                                    
    else if(line1.charAt(i)<line2.charAt(i))                                    //line1의 i번째 문자가 line2의 i번째 문자보다 작으면 false
        return false;
    else if(line1.charAt(i)==line2.charAt(i))                                  /* line1의 i번째 문자가 line2의 i번째 문자보다  같으면
        compare(line1, line2, i+1);                                                    재귀호출해서 다음 인덱스 비교    */
    }
    else if(i>Math.min(line1.length(), line2.length())-1)              /* 인덱스가 line1이나 line2의 끝까지 가면 false
        return false;                                                                         예) "1 2 4 "랑 "1 3 " 비교 할 때 2랑 3까지만 비교완료된 상태이니 그냥 false 반환
    return false; //얘는 의미 없음. 조건문 밖에 boolean 반환해야 메소드 오류 안나서 그냥 붙인거
}(line1.length(),>



이렇게 메소드 만들고

정렬에서

if(compare(arr[i].arr[j],0))

//sweep

했는데 정렬이 제대로 안됨.

저 메소드가 잘못된거임? 왜 난 문제를 못찾겠지.

아니면 메소드는 제대로 됐는데 정렬이 잘못된건가.


참고로 입력이

5 10
1 4 10
2 3 10
6 9
1 5 9
2 4 9
1 2 3 9
7 8
1 6 8
2 5 8
3 4 8
1 2 4 8
2 6 7
3 5 7
1 2 5 7
1 3 4 7
4 5 6
1 3 5 6
2 3 4 6
1 2 3 4 5


일때


출력이

1 2 3 4 5
1 3 5 6
1 4 10
1 3 4 7
1 2 5 7
1 5 9
1 2 4 8
1 2 3 9
1 6 8
2 3 4 6
2 5 8
2 3 10
2 4 9
2 6 7
3 4 8
3 5 7
4 5 6
5 10
6 9
7 8



이렇게 나와버림




(line1.length(),>


(line1.length(),>