算法比较简单,注释就能说明问题,直接上代码!

方法一:(利用递归实现)

public static String reverse1(String s) {int length = s.length();if (length <= 1)return s;String left = s.substring(0, length / 2);String right = s.substring(length / 2, length);return reverse1(right) + reverse1(left);  //调用递归}

方法二:(拼接字符串)

public static String reverse2(String s) {int length = s.length();String reverse = "";for (int i = 0; i < length; i++)reverse = s.charAt(i) + reverse;return reverse;}

方法三:(利用数组,倒序输出)

public static String reverse3(String s) {char[] array = s.toCharArray();String reverse = "";for (int i = array.length - 1; i >= 0; i--)reverse += array[i];return reverse;}

方法四:(利用StringBuffer的内置reverse方法)

public static String reverse4(String s) {return new StringBuffer(s).reverse().toString();}

方法五:(利用临时变量,交换两头数值)

public static String reverse5(String orig) {char[] s = orig.toCharArray();int n = s.length - 1;int halfLength = n / 2;for (int i = 0; i <= halfLength; i++) {char temp = s[i];s[i] = s[n - i];s[n - i] = temp;}return new String(s);}

方法六:(利用位异或操作,交换两头数据) 具体交换原理,参考上一篇文章

public static String reverse6(String s) {char[] str = s.toCharArray();int begin = 0;int end = s.length() - 1;while (begin < end) {str[begin] = (char) (str[begin] ^ str[end]);str[end] = (char) (str[begin] ^ str[end]);str[begin] = (char) (str[end] ^ str[begin]);begin++;end--;}return new String(str);}

方法七:(利用栈结构)

public static String reverse7(String s) {char[] str = s.toCharArray();Stack<Character> stack = new Stack<Character>();for (int i = 0; i < str.length; i++)stack.push(str[i]);String reversed = "";for (int i = 0; i < str.length; i++)reversed += stack.pop();return reversed;}

有其它方法,欢迎交流!兰州理工大学

【字符串反转总结】Java中七种方法实现相关推荐

  1. java中三种方法_Java文件I/O的三种方法

    Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...

  2. Java中三种方法交换两个变量的值

    1.中间变量 是最普也是最广泛使用的交换方式: 这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换. 2.加减运算 前提只能是数字 因为这种 ...

  3. Java中字符串反转的七种方法

    突然在想,确实是浮躁了 字符串反转的七种方法: 在线代码: package test1;import java.util.Stack;public class Reverse {//方法一:递归+字符 ...

  4. (转)Shell中获取字符串长度的七种方法

    Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...

  5. python 子串是否在字符串中_python七种方法判断字符串是否包含子串

    1. 使用 in 和 not in in 和 not in 在 Python 中是很常用的关键字,我们将它们归类为 成员运算符. 使用这两个成员运算符,可以很让我们很直观清晰的判断一个对象是否在另一个 ...

  6. java equals 判断空_Java 判断字符串是否为空的三种方法与性能分析

    [java中判断字符串是否为数字的三种方法  1>用JAVA自带的函数 public static boolean isNumeric(String str){   for (int i = s ...

  7. java字符串为空抛出异常_Java 判断字符串是否为空的四种方法,及效率比较。

    以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s)); 方法二: ...

  8. java json转抽象对象_做一次面向对象的体操:将 JSON 字符串转换为嵌套对象的一种方法...

    原标题:做一次面向对象的体操:将 JSON 字符串转换为嵌套对象的一种方法 来源:琴水玉 , www.cnblogs.com/lovesqcc/p/9478678.html 程序员共读整理发布,转载请 ...

  9. java中的排序方法_Java中8种常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...

最新文章

  1. java initcause_initCause()是什么意思
  2. mysq对存在null值的字段排序
  3. java static变量销毁_JAVA里static 变量在程序执行结束后是否被消毁
  4. java 在线答疑系统_基于java 在线答疑系统-需求分析与概念原型
  5. 2019蓝桥杯省赛---java---A---4(迷宫)
  6. Linux挂载点和文件系统类型介绍
  7. python文件数据类型_Python核心数据类型——文件
  8. 韭菜的自我修养-认知篇
  9. 合并数字 — m个数字消除相邻的差的绝对值为1的两个数中较大的那一个,直到没有两个相邻的差的绝对值为 1 的数(动态数组定义)
  10. Android轉檔案到iphone,在 Mac 上要如何存取 Android 手機中的檔案,傳輸檔案沒問題...
  11. 发那科机器人override指令_发那科机器人如何改变自动的运行速度,为什么按加减后,焊接完成又变回原来的速度...
  12. linux 串口驱动
  13. MagicDraw二次开发过程
  14. 十分钟学会如何用Python处理CSV文件
  15. php 万网域名查询接口
  16. Windows 下编译 OpenSSL
  17. Delphi 汇编学习(八)--- 图像水平镜像垂直镜像的极致优化
  18. 知网 万方 论文免费下载方法
  19. 微博营销和软文营销的价值
  20. TP TN FP FN

热门文章

  1. 爆火“捏脸”APP崽崽ZEPETO,如何开启虚拟世界的社交IP?
  2. 互联网1分钟 | 0121 Vlog陌生人社交APP「自言」为年轻人打造生活视频分享平台;周鸿祎:智能设备要警惕“海豚音攻击”...
  3. Spring框架中的9种设计模式汇总
  4. 【转】C++调用Matlab的.m文件
  5. 第三章 经典场景设计
  6. oracle11g安装成功
  7. 项目案例分享四:DC升级后Sysvol停止复制,日志报13508
  8. CA自签证书的颁发及应用
  9. 7.2 极大似然估计
  10. docker+jenkins+maven+svn