2010-06-02 2 views
1

012 @ TEST1 524 @ test2 ABC @ TEST3 AB @ test4 53 @ test5 @ test6Нужен алгоритм для этой проблемы сортировки!

я хочу, чтобы отсортировать следующие данные таким образом, что Окончательный вывод: отсортированные на основе данных до ' @ Числа должны прийти до альфа

@ test6 012 @ TEST1 53 @ test5 524 @ test2 AB @ test4 ABC @ tEST3

я хочу реализовать это в Java ... помочь мне

ответ

3
List<String> stringList = Arrays.asList(new String[]{"[email protected]", "[email protected]","[email protected]" ,"[email protected]" ,"[email protected]","@TEST6"}); 

    Collections.sort(stringList,new Comparator<String>(){ 

     public int compare(String s1,String s2){ 
      String c1,c2; 
      if (s1.split("@").length >1){c1 = s1.split("@")[0]}else{c1 = ""} 
      if (s2.split("@").length >1){c2 = s2.split("@")[0]}else{c2 = ""} 
      return c1.compare(c2); 
     } 
}); 

Или что-то подобное, просто настроить сравнить методу

+0

Я не могу понять код, пожалуйста, может кто-нибудь дать какой-нибудь другой выход или помочь мне понять код ..thanks –

+0

Вы ищете алгоритм псевдокода или реализацию на определенном языке (возможно, используя библиотеки, предоставляемые этой платформой)? Этот пример выглядит как Java, используя процедуру сортировки из библиотек платформы. –

+0

Мой пример написан на Java не то, что вам нужно? – Khanser

0

ИТС регулярный альфа-позици словарь рода, но @ первым получает приоритет, потому что, к сожалению, в таблице ASCII, @ получил стек между цифрами и большими буквами. как вы можете увидеть здесь:

http://www.asciitable.com/index/asciifull.gif

поочередно, вы можете хранить данные в double-valued nodes, который содержит данные слева от @ в node1 и данные справа, в node2, а также использование словарь sort на node1

Смежные вопросы