码迷,mamicode.com
首页 > 其他好文 > 详细

字符串反转

时间:2017-06-01 19:30:59      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:string   char   build   简单介绍   二分   rac   int   val   for   

本片文章简单介绍一下,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;
    }

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

字符串反转

标签:string   char   build   简单介绍   二分   rac   int   val   for   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!