博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串处理:如何实现字符串的反转
阅读量:4980 次
发布时间:2019-06-12

本文共 1006 字,大约阅读时间需要 3 分钟。

1. 问题描述: 把一个字符串进行反转, 如 "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);
}

 

2. 问题描述: 把一个句子中的单词进行反转, 例如: “how are you” 反转之后是 “you are how”

思路: 先把字符串进行反转,再对单词进行反转

 

转载于:https://www.cnblogs.com/daisy0707/p/5240573.html

你可能感兴趣的文章