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
原创粉丝点击