清除字符串中的括号,例:输入"1()2(3))4" 输出"1234"

// 利用双指针, 第一步先遍历一遍统计字符串中的数字index2
// 让index1指向字符串的最后一个元素, 如果当前index1的元素为数字
// 则让index2 与 index1 所在的元素相交换 此时:index1不动,index2--
// 如果不是数字则只需将index1--
// 该算法会打乱数字在原字符串的序列
public String clearBracket(StringBuilder str) {
        if (str == null)
            return "";
        int index1 = str.length() - 1;
        int index2 = -1;
        for (int i=0; i<str.length(); i++) {
            if (Character.isDigit(str.charAt(i)))
                index2++;
        }
        int tempIndex = index2;
        while (index1 >= 0 && index2 >= 0) {
            if (Character.isDigit(str.charAt(index1))) {
                char tempChar = str.charAt(index2);
                str.setCharAt(index2--, str.charAt(index1));
                str.setCharAt(index1, tempChar);
            } else {
                index1--;
            }
        }
        return str.substring(0, tempIndex+1);
}
10-27 13:12