欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在java中如何实现字符串的反转

程序员文章站 2022-05-21 17:33:17
如 "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);
}