字符串反转

本片文章简单介绍一下,jdk 对字符反转的实现。

AbstractStringBuilder.reverse() 详细的实现在这个类中。

 public AbstractStringBuilder reverse() {
        boolean hasSurrogates = false;
        int n = count - 1;
        for (int j = (n-1) >> 1; j >= 0; j--) {
            int k = n - j;
            char cj = value[j];
            char ck = value[k];
            value[j] = ck;
            value[k] = cj;
            if (Character.isSurrogate(cj) ||
                Character.isSurrogate(ck)) {
                hasSurrogates = true;
            }
        }
        if (hasSurrogates) {
            reverseAllValidSurrogatePairs();
        }
        return this;
    }

总体思路就是二分法,互换对称位置的字符。

原文地址:https://www.cnblogs.com/qunan/p/6930277.html