在字符串中怎么将多个相同的字符转换成同一个字并反回字符串
越简单越好最好是直接用api函数
如 "aaaabbbbbbbbcccc""显示"abc"

解决方案 »

  1.   

    public class Test {
        public static void main(String[] args) {
            String str ="aaaaabbbbbcccdd";
            str = str.replaceAll("(.)\\1+", "$1");
            System.out.println(str);
        }
    }只能合并连续着相同的字符。
      

  2.   

    不连续的话,以我现在的水平没有办法采用正则表达式来做,只能采用普通的方法:public class Test {
        
        public static void main(String[] args) {
            String str ="aaaaabbbbbcccddaaaddee";        
            System.out.println(mergeChar(str));
        }
        
        private static String mergeChar(String str) {        
            char[] chars = str.toCharArray();
            StringBuffer sb = new StringBuffer();
            for(int i = 0; i < chars.length; i++) {
                if(sb.indexOf(chars[i]+"") < 0) {
                    sb.append(chars[i]);
                }
            }
            return sb.toString();
        }
    }
      

  3.   

    把它转换成字符数组,放到Set里,它可以去掉重复的.
      

  4.   

    public class w
    { public static void main(String[] args)
    {
    String s = "aasrtfgsadddppoyiutrjgnhgggdfffsdderrrruuubnvmcccvv";
    String ss="";
    char[] ch = s.toCharArray();
    TreeSet set = new TreeSet();
    for(char c : ch)
    {
    set.add(String.valueOf(c));
    }
    Object[] ch2 = set.toArray();
    for(Object o : ch2)
    {
    ss = ss + o;
    }
    System.out.println(ss); }
    }