2015-02-24 92 views
-1

比较字符串时如何忽略所有特殊字符?比较字符串时忽略特殊字符

我已经设置了忽略大写字母的代码,但是我还需要忽略除字母以外的所有其他字符。

这里是我到目前为止的代码

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

试图过滤字符串中的字符? – 2015-02-24 12:40:09

+0

'return s1.replaceAll(“[ - +。^ :,]”,“”)。compareToIgnoreCase(s2.replaceAll(“[ - +。^ :,”),“”));' – SorryForMyEnglish 2015-02-24 12:45:36

回答

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); 
        } 
       });