2013-08-27 2 views
-1

Могу ли я получить любой легкий путь в Java, где я мог бы устроить алфавитов того, гдеСортировка строк данных на основе символов и его длина

a < aa < aaa < aaaa 
a < b < ab < ba < aba 

метод String.compareTo устроят данные в приведенной ниже форме. Следовательно, не будет служить моя цель < < аа ааа < < б аб < ба

Пожалуйста, помогите !!!

+1

Вы должны написать что-то, что служит вашей цели. Если после того, как вы потратили некоторое время на это, и у вас есть проблемы, вы можете опубликовать код и проблемы здесь. – dcaswell

+1

напишите компаратор, который принимает две строки и выходы 0, если строки одинаковы, 1, если первая строка больше (должна появиться позже) и -1, если она должна появиться раньше –

ответ

1

Вы можете использовать компаратор, который сравнивает длина шнура и использование compareTo вместе

 public int compare(String o1, String o2) 
     { 
      if(o1.length() > o2.length()) 
      { 
       return 1; 
      } 
      else if(o1.length() < o2.length()) 
      { 
       return -1; 
      } 
      return o1.compareTo(o2); 
     } 
+0

Спасибо вам, Рагхаву и Voe – user2720673

6

Вы можете сделать это с помощью Comparator

Проверьте это:

import java.util.Comparator; 
public class SComparator implements Comparator<String> { 

    @Override 
    public int compare(String s1, String s2) { 
     if(s1.length() != s2.length()){ 
      return s1.length() - s2.length(); 
     } 
     return s1.compareTo(s2); 
    } 

} 

Затем, вы можете использовать его как это:

ArrayList<String> L = new ArrayList<String>(); 
// ... 
Collections.sort(L, new SComparator()); 
0

Вы можете решить этот вопрос через , сортируя.

String[] words = {"going", "went", "go", "how", "jam"};  
Arrays.sort(arr); 

Выход:

go < going < how < jam < went 
Смежные вопросы