替换原则:index k 的值和 n-k 的值进行交换。(始终记住程序员的n、k都是字符串的实际位置。)

乘除的最基本实现还是来源于移位操作。

 1     public String reverse(String src) { 2         char[] value = src.toCharArray(); 3         int count = value.length; 4         int n = count - 1; 5         for (int j = (n - 1) >> 1; j >= 0; j--) { 6             char tmp = value[j]; 7             char tmp2 = value[n - j]; 8             value[j] = tmp2; 9             value[n - j] = tmp;10         }11         return new String(value);12     }

 

Java字符串反转有2个已经实现的类函数: StringBuffer、StringBuilder类的函数reverse() 。

spacer.gif

其中源码的实现如下,核心的思想是替换原则:

View Code

其中的hasSurrogate与字符编码有关系,这个东东暂时没有研究。