JAVA中的字符串反转

来源:互联网 发布:mac os sierra反应快吗 编辑:程序博客网 时间:2024/06/03 13:26
操作字符串,是JAVA中的一项常用的而且也是一种基本的能力。对于反转字符串这一看似简单的操作,里面体现了好多的字符串的应用,下面结合自己的想法与网上的方法,总结反转字符串基本上有以下一些方法。以方法表现的性能从高到底列出: 

第一种方法: 

public static String getRevString(String str){ 

        String a = str; 

        char[] c = a.toCharArray(); 

        int i=a.length(); 

        i--; 

        char temp; 

        for (int count=0;count<i;count++,i-- ) 

        { 

        temp=c[count]; 

           c[count]=c[i]; 

           c[i]=temp; 

        } 

        return new String(c,0,a.length()); 

     } 

第二种方法: 

public static String getRevString(String str){ 

         StringBuffer sb = new StringBuffer(str); 

         String  returnStr = sb.reverse().toString(); 

         return returnStr; 



第三种方法: 

public static String getRevString(String str){ 

        char[] temp = str.toCharArray(); 

        int length = temp.length; 

        char[] recive = new char[length]; 

        for(int i=length;i>0;i--){ 

            recive[length-i] =  temp[i-1]; 

        } 

        String temp2 = new String(recive); 

        return temp2; 



第四种方法: 

public static String getRevString(String s){ 

        StringBuffer sb = new StringBuffer(); 

         for ( int i = s.length() - 1; i >= 0; i--) { 

   

           sb .append(s.charAt(i)); 

        } 

        return sb.toString(); 

      } 

最后一种方法是用递归的方法实现的: 

其方法体如下: 

public static String getRevString(String strTest){ 

        if(strTest.length() == 1) 

        return strTest; 



        String strResult = strTest.substring(strTest.length() -1,strTest.length()); 

        strResult += getRevString (strTest.substring(0,strTest.length() -1)); 

        return strResult; 

     } 

这种递归的方法当要反转的字符串少时,不会出现错误,但当要反转的字转串比较多时,这种方法就会报堆栈溢出错误,还没搞清是怎么回事.这种方法的性能也不是太好. 
转载自:http://wusaihe.blog.163.com/blog/static/7239597120104129531235/
1 0
原创粉丝点击