在 java 中如何实现字符串的反转
如 "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
代码实现如下:
- 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(beginchar temp=cArray[begin];
- cArray[begin] = cArray[end];
- cArray[end] = temp;
- begin ++;
- end --;
- }
- return new String(cArray);
- }
来源: https://www.2cto.com/kf/201904/805162.html