java字符串反转方法【全】
来源:互联网 发布:开淘宝店铺照片要求 编辑:程序博客网 时间:2024/06/07 01:48
搜集的java字符串反转方法,一般用于面试,项目中用的很少···
package com.wsheng.aggregator.algorithm.string; import java.util.Stack; /** * 8 种字符串反转的方法, 其实可以是9种方法,第9种是使用StringBuffer和StringBuilder中实现的方法 * @author Josh Wang(Sheng) * * @email swang6@ebay.com * */public class StringReverse { /** * 二分递归地将后面的字符和前面的字符连接起来。 * * @param s * @return */ 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); } /** * 取得当前字符并和之前的字符append起来 * @param s * @return */ 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; } /** * 将字符从后往前的append起来 * @param s * @return */ 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()一样,都用了Java自实现的方法,使用位移来实现 * @param s * @return */ public static String reverse4(String s) { return new StringBuilder(s).reverse().toString(); } /** * 和StringBuilder()一样,都用了Java自实现的方法,使用位移来实现 * @param s * @return */ public static String reverse5(String s) { return new StringBuffer(s).reverse().toString(); } /** * 二分交换,将后面的字符和前面对应的那个字符交换 * @param s * @return */ public static String reverse6(String s) { char[] array = s.toCharArray(); int end = s.length() - 1; int halfLength = end / 2; for (int i = 0; i <= halfLength; i++) { char temp = array[i]; array[i] = array[end-i]; array[end-i] = temp; } return new String(array); } /** * 原理是使用异或交换字符串 * a=a^b; * b=b^a; * a=b^a; * * @param s * @return */ public static String reverse7(String s) { char[] array = s.toCharArray(); int begin = 0; int end = s.length() - 1; while (begin < end) { array[begin] = (char) (array[begin] ^ array[end]); array[end] = (char) (array[end] ^ array[begin]); array[begin] = (char) (array[end] ^ array[begin]); begin++; end--; } return new String(array); } /** * 基于栈先进后出的原理 * * @param s * @return */ public static String reverse8(String s) { char[] array = s.toCharArray(); Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < array.length; i++) stack.push(array[i]); String reverse = ""; for (int i = 0; i < array.length; i++) reverse += stack.pop(); return reverse; } public static void main(String[] args) { System.out.println(reverse1("Wang Sheng")); System.out.println(reverse2("Wang Sheng")); System.out.println(reverse3("Wang Sheng")); System.out.println(reverse4("Wang Sheng")); System.out.println(reverse5("Wang Sheng")); System.out.println(reverse6("Wang Sheng")); System.out.println(reverse7("Wang Sheng")); System.out.println(reverse8("Wang Sheng")); }}
from: http://blog.csdn.net/u010834071/article/details/45306051
1 0
- java字符串反转方法【全】
- java字符串反转方法【全】
- java字符串反转方法总结
- Java 字符串反转:七种字符串反转的方法
- 【字符串反转总结】Java中七种方法实现
- java七种反转字符串的方法
- 【字符串反转总结】Java中七种方法实现
- 字符串反转方法总结
- String字符串反转方法
- 字符串反转方法
- 字符串反转方法总结
- js反转字符串方法
- java 反转字符串
- Java技巧:字符串反转
- Java 输出反转字符串
- 字符串反转-java
- java实现字符串反转
- Java 字符串反转实现
- 详解Qt动画框架(2)--- 实现网易云音乐tag切换
- 用Java模拟网卡、声卡继承PIC接口,实现网卡、声卡能与主板连接
- C语言实现字节流与十六进制字符串的相互转换
- 连接池
- 不同版本(2.3,2.4,2.5,3.0,3.1)的Servlet web.xml 头信息
- java字符串反转方法【全】
- Android自定义控件:如何使view动起来?
- Spring MVC
- Unity学习笔记 5th —— 第一人称FPS游戏制作
- CSS选择器
- Java之网络编程
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- Android 不得不说的VideoView的一些坑及其解决方案
- DRBD编译安装中出现的问题及解决小结