【字符串反转总结】Java中七种方法实现
来源:互联网 发布:人工智能最顶尖科学家 编辑:程序博客网 时间:2024/05/18 03:31
算法比较简单,注释就能说明问题,直接上代码!
方法一:(利用递归实现)
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; }有其它方法,欢迎交流!兰州理工大学
0 0
- 【字符串反转总结】Java中七种方法实现
- 【字符串反转总结】Java中七种方法实现
- java字符串反转方法总结
- 总结几种Java字符串反转的实现方法
- 字符串反转方法总结
- 字符串反转方法总结
- java字符串反转总结
- java实现字符串反转
- Java 字符串反转实现
- java实现字符串反转
- java实现字符串反转
- 字符串反转 -- java实现
- java实现字符串反转
- java实现字符串反转
- Java实现字符串反转
- Java实现字符串反转
- java 实现字符串反转
- Java实现字符串反转
- 逆向虚函数
- 黑马程序员---Java基础(集合)
- 自己对栈帧的理解
- 学习ThinkPHP3.2.2:video15,删除记录
- 解决linux中mysql乱码问题
- 【字符串反转总结】Java中七种方法实现
- 条件判断 & 循环语句的逆向
- 指针的逆向
- c访问mysql的完整例子
- 【BeiJing wc2012】【BZOJ2661】连连看
- Java 最佳实践
- 逆向for语句
- delphi 资源文件管理 Resources and Images
- 二维数组对比一维数组的取值差别是多了一个行偏移的计算