java 实现字符串反转
来源:互联网 发布:内外网切换软件 编辑:程序博客网 时间:2024/06/08 06:16
字符串的反转可以使用递归,交换排序等方法。简单整理了几个可以实现字符串反转的方法
package com.mianshi.test;import java.util.Stack;/** * * 类名称:RollbackStringTest * 描述: 实现字符串的反转 * 创建人:wangql * 创建时间:2017-2-12 */public class RollbackStringTest {public static void main(String[] args) {String string = "abcdefg1234567";String str = reverse(string);String str1 = reverse1(string);String str2 = reverse2(string);String str3 = reverse3(string);String str4 = reverse4(string);String str5 = reverse5(string);String str6 = reverse6(string);String str7 = reverse7(string); System.out.println("方法1: "+str); System.out.println("方法2: "+str1); System.out.println("方法3: "+str2); System.out.println("方法4: "+str3); System.out.println("方法5: "+str4); System.out.println("方法6: "+str5); System.out.println("方法7: "+str6); System.out.println("方法8: "+str7);}public static String reverse(String originStr) {if(originStr == null || originStr.length() <= 1) return originStr;return reverse(originStr.substring(1)) + originStr.charAt(0);}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;} 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; }}运行结果
方法1: 7654321gfedcba方法2: 7654321gfedcba方法3: 7654321gfedcba方法4: 7654321gfedcba方法5: 7654321gfedcba方法6: 7654321gfedcba方法7: 7654321gfedcba方法8: 7654321gfedcba
0 0
- java实现字符串反转
- Java 字符串反转实现
- java实现字符串反转
- java实现字符串反转
- 字符串反转 -- java实现
- java实现字符串反转
- java实现字符串反转
- Java实现字符串反转
- Java实现字符串反转
- java 实现字符串反转
- Java实现字符串反转
- 字符串反转(java实现)
- Java实现字符串的反转
- java实现字符串的反转
- Java实现字符串的反转
- Java使用栈实现字符串反转
- 怎样把字符串反转? Java实现
- java实现字符串反转(二)
- JDBC驱动协议
- JAVA线程
- servlet
- ios 命令行调试
- DOM树知识点梳理
- java 实现字符串反转
- eclipse用axis2发布webserver
- x265 2.2版本更新
- ViewPager + Fragment 仿微信滑动切换页卡
- Android技术汇总
- POJ1013称硬币
- 《Head first设计模式》学习笔记 – 策略模式
- C++用new和不用new创建对象区别
- Eclipse快捷插件:一键定位、打开文件所在目录