2015-02-24 2 views
-1

Как игнорировать все специальные символы при сравнении строки?Игнорирование специальных символов при сравнении строк

Я установил код, чтобы игнорировать заглавную букву, но мне нужно также игнорировать все остальные символы, кроме букв.

Вот мой код до сих пор

Collections.sort(MusicPlayerService.songNamesAll, new Comparator<String>() { 
         @Override 
         public int compare(String s1, String s2) { 
          return s1.compareToIgnoreCase(s2); 
         } 
        }); 
+0

Пробовал фильтрации символов строки перед сравнением? –

+0

'return s1.replaceAll (" [- +.^:,] "," "). CompareToIgnoreCase (s2.replaceAll (" [- +.^:,] "," "));' – SorryForMyEnglish

ответ

0

заменить другие, чем буквенно-цифровой с пустой символ символов, а затем сравнивать строки, как:

Collections.sort(MusicPlayerService.songNamesAll, new Comparator<String>() { 
        @Override 
        public int compare(String s1, String s2) { 
        s1 = s1.replaceAll("[^a-zA-Z0-9]+",""); 
        s2 = s2.replaceAll("[^a-zA-Z0-9]+",""); 
        return s1.compareToIgnoreCase(s2); 
        } 
       }); 
Смежные вопросы