Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Babanov                    2:5020/5609.69 11 Apr 2001  08:08:23
 To : Stephen V Avdeyev
 Subject : Re: способ отсортировать массив строк по произвольному алфавиту
 -------------------------------------------------------------------------------- 
 
 Юґullo Stephen!
 
  SA> подскажите, плиз, более-менее эффективный способ отсортировать массив
  SA> строк по произвольному алфавиту, типа:
  SA> $abc = 'абвгдabcde012345';                        # задали алфавит
  SA> @array = ('аббав1', аббавdce', 'abcde');          # задали массив
  SA> @array = sort {как-то использовать $abc} @array;  # отсортировали
  SA> чтобы на выходе получить:
  SA> (аббавdce, аббав1, abcde)
 
 Сделай tr/// строк (либо на лету, либо заранее) к стандартному алфавиту,
 т.е. примерно так:
 
 $abc = reverse join '', 'a'..'z';
 $tr1 = "tr/$abc/\0-\377/";
 $tr2 = "tr/\0-\377/$abc/";
 @a = ( 'abra', 'dabra', 'shvabra', 'kadabra' );
 map { eval $tr1 } @a;
 @a = sort @a;
 map { eval $tr2 } @a;
 print join "\n", @a;
 
 Либо читай perldoc perllocale в районе LC_COLLATE до посинения ;)
 
 CYa!!!
 
 ЪДВїЪДВВВДДДщщъъ ЪДВВВДї ЪїЪДВДДДДДДДДщщъъ   ЪДДДД 2:5020/5609.69 ДДДї
 іВіАґДЕ ґBabanov іВі ґВі іАґВіST BERSERKER   і babanov@earthlink.net і
 ... Еще наше поколение будет жить при Виагре! [предп. из писем Ильича к HКК]
 ---
  * Origin: Our governor can beat up your governor! (2:5020/5609.69)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 способ отсортировать массив строк по произвольному алфавиту   Stephen V Avdeyev   11 Apr 2001 10:35:24 
 Re: способ отсортировать массив строк по произвольному алфавиту   Alexander Babanov   11 Apr 2001 08:08:23 
Архивное /ru.perl/47303ad45bc3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional