字符串反转
本片文章简单介绍一下,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; }
总体思路就是二分法,互换对称位置的字符。