Java 字符串反转:七种字符串反转的方法

来源:互联网 发布:淘宝一元秒杀活动 编辑:程序博客网 时间:2024/05/17 07:20
import java.util.Stack;public classStringReverse{    /*** @param s    * @return    */    publicstatic 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);    }    /**    * @param s    * @return    */    publicstatic String reverse2(String s){        int length= s.length();        String reverse= "";        for(int i= 0; i< length; i++){            reverse = s.charAt(i)+ reverse;        }        return reverse;    }    /**     * @param s    * @return    */    publicstatic String reverse3(String s){        char[] array= s.toCharArray();        String reverse= "";        for(int i= array.length- 1; i>= 0; i--){            reverse += array[i];        }        return reverse;    }    /**    * @param s    * @return    */    publicstatic String reverse4(String s){        returnnew StringBuffer(s).reverse().toString();    }    /**    * @param orig    * @return    */    publicstatic 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;        }        returnnew String(s);    }    /**    * @param s    * @return    */    publicstatic String reverse6(String s){        char[] str= s.toCharArray();        intbegin = 0;        intend = 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--;        }        returnnew String(str);    }    /**    * @param s    * @return    */    publicstatic String reverse7(String s){        char[] str= s.toCharArray();        Stack<Character> stack= newStack<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;    }    /**    * @param args    */    publicstatic void main(String[] args) {        System.out.println(reverse1("abcdefg"));        System.out.println(reverse2("abcdefg"));        System.out.println(reverse3("abcdefg"));        System.out.println(reverse4("abcdefg"));        System.out.println(reverse5("abcdefg"));        System.out.println(reverse6("abcdefg"));        System.out.println(reverse7("abcdefg"));    }}


 

原创粉丝点击