如 "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);
}

最新文章

  1. mysql数据库的安装与使用
  2. hudson slave搭建
  3. [刘阳Java]_快速搭建MyBatis环境_第2讲
  4. 如何正确选择UI自动化测试
  5. ie下如果已经有缓存,load方法的效果就无法执行.的解决方法
  6. 解压vmlinuz和解压initrd(initramfs)
  7. error when loading the sdk 发现了元素 d:skin 开头无效内容
  8. 可扩展的listview--Expandablelistview
  9. 纯CSS的颜色渐变效果
  10. IIS 403.14 - Forbidden错误解决方法
  11. Naive Bayes在mapreduce上的实现(转)
  12. 蓝桥网试题 java 基础练习 十六进制转八进制
  13. 完成你的第一个superMap示例
  14. LeetCode &amp; Q20-Valid Parentheses-Easy
  15. Java线程的状态
  16. 图像检索(1): 再论SIFT-基于vlfeat实现
  17. PostgreSQL 锁等待诊断详解
  18. [MicroPython]TPYBoardv102播放音乐实例
  19. mysql 5.7 线程阻塞处理
  20. C++ 成员函数赋值给C 的函数指针的采坑录

热门文章

  1. 深入vue - 源码目录及构建过程分析
  2. FreeSql 新查询功能介绍
  3. 模块使用:time、datetime、calendar、sys、os、os.path、normcase和normapath、random、json、pickle
  4. 去除inline-block元素间的间距
  5. 如何设置Linux(Centos)系统定期任务(corntab详细用法)
  6. 管道及I/O重定向
  7. pc蛋蛋app开发定制
  8. 知乎专栏开放性api
  9. git的学习笔记(二):git远程操作
  10. JVM 学习(一)反射、垃圾回收、异常处理--- 2019年4月