字符串去除重复字符(重复字符不保留)

/**
     * 去除重复字符(重复字符不保留)
     * @param s 原始字符串
     * @return 去重后的字符串
     */
    public static String remove(String s){
        //字符串拆分数组
        char [] ss = s.toCharArray();
        //标识符(是否继续判断是否有重复)
        boolean flag = false;
        //接收去重后的字符
        StringBuffer sb = new StringBuffer();
        //开始判断
        do {
            //每次开始循环之前重置标识为false
            flag = false;
            //清空接收字符串
            sb = new StringBuffer();
            //标识(是否有重复字符)
            boolean n = false;
            //循环查找重复字符
            for (int i = 0; i < ss.length; i++) {
                //存在重复字符
                while (i < ss.length - 1 && ss[i] == ss[i+1] ) {
                    //下标+1
                    i++;
                    //本次循环结束后继续进行下次循环判断重复字符
                    flag = true;
                    //存在重复字符
                    n = true;
                }
                //存在重复字符
                if(n){
                    //重复字符后一位开始
                    i++;
                    //重置标识
                    n = false;
                }
                //拼接去重字符
                sb.append(ss[i]);
            }
            //数组重新赋值
            ss = sb.toString().toCharArray();
        } while (flag);
        
        return sb.toString();
        
    }

猜你喜欢

转载自blog.csdn.net/qq_36161345/article/details/83025682