如 "abcdt" 反轉之後是 "tdcba" 思路1: 運用遞歸的方法進行反轉 假設反轉方法為 reverseString(String str)1)當字元串為空或者只有一個字元時,返回原字元2)當字元串有兩個以上(長度為len)的字元時,反轉後的字元串為 第二個字元開始的子串的反轉結果+第一個字 ...
如 "abcdt" 反轉之後是 "tdcba"
思路1: 運用遞歸的方法進行反轉
假設反轉方法為 reverseString(String str)
1)當字元串為空或者只有一個字元時,返回原字元
2)當字元串有兩個以上(長度為len)的字元時,反轉後的字元串為 第二個字元開始的子串的反轉結果+第一個字元, 即 reverseString(str.subString(1))+str.charAt(0);
代碼實現如下:
public String reverseStringRecur(String str) {
if ((str == null) || str.length() <2) return str;
return reverseString(str.subString(1))+str.charAt(0);
}
思路2: 非遞歸的方法
當字元串長度大於1時,把第一個字元和最後一個字元交換,把第二個字元和倒數第二個字元交換
需要設置兩個標識符:begin, end。begin指向第一個字元,end指向最後一個字元
當begin<end, 交換第begin個字元和第end個元素的字元, 然後begin向後移動,end向前移動
代碼實現如下:
public static String reverseString(String str) {
if ((str == null) || str.length() <2) return str;
char cArray[] = str.toCharArray();
int begin = 0;
int end = cArray.length-1;
while(begin<end){
char temp=cArray[begin];
cArray[begin] = cArray[end];
cArray[end] = temp;
begin ++;
end --;
}
return new String(cArray);
}