2015-11-30 2 views
0

Я изучаю Java и проверяю вопросы UVA. Это UVA 612. Я использовал компаратор для сортировки массива String, но я понятия не имею, почему значение 9 больше, чем все числа. Это мой код:Сортировка 2d массива в java

public static String getSort(String str) { 
    int SLEN = str.length(); 
    int count = 0; 
    for (int i = 0; i < SLEN; i++) { 
     for (int j = i; j < SLEN; j++) { 
      if (str.charAt(i) > str.charAt(j)) { 
       count++; 
      } 
     } 
    } 
    return Integer.toString(count); 
} 

public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 
    int SLEN = sc.nextInt(); 
    int LINE = sc.nextInt(); 
    String[][] table = new String[LINE][2]; 
    for (int i = 0; i < LINE; i++) { 
     table[i][1] = sc.next(); 
     table[i][0] = getSort(table[i][1]); 
    } 

    Arrays.sort(table, new Comparator<String[]>() { 
     @Override 
     public int compare(final String[] entry1, final String[] entry2) { 
      final String str1 = entry1[0]; 
      final String str2 = entry2[0]; 
      return str1.compareTo(str2); 
     } 
    }); 

    for (int i = 0; i < LINE; i++) { 
     System.out.println(table[i][1]); 
    } 

    sc.close(); 
} 

вход является:

10 6 
AACATGAAGG 
TTTTGGCCAA 
TTTGGCCAAA 
GATCAGATTT 
CCCGGGGGGA 
ATCGATGCAT 

Выход меня есть:

AACATGAAGG #10 
GATCAGATTT #11 
ATCGATGCAT #17 
TTTTGGCCAA #36 
TTTGGCCAAA #37 
CCCGGGGGGA #9 

Но ожидаемый результат:

CCCGGGGGGA #9 
AACATGAAGG #10 
GATCAGATTT #11 
ATCGATGCAT #17 
TTTTGGCCAA #36 
TTTGGCCAAA #37 

Целое За хешем стоит значение getSort(). Я не знаю, почему значение 9 является самым большим после сортировки.

ответ

0

Вы сортируете массив по алфавиту, но, похоже, вы хотите отсортировать его по численному признаку. Попробуйте следующее:

Arrays.sort(table, new Comparator<String[]>() { 
     @Override 
     public int compare(final String[] entry1, final String[] entry2) { 
      int n1 = Integer.parseInt(entry1[0]); 
      int n2 = Integer.parseInt(entry2[0]); 
      return n1 - n2; 
     } 
    }); 
Смежные вопросы