用Java编写函数反转字符串


如下所示,下面是两种反转字符串的方法。

实践过程中发现,如果是中文字符串,第二种反转方法会输出乱码。

因此,建议首选第一种方法。

  1. /** 
  2.  * 反转字符串 演示实例 
  3.  * 假设有一个字符串 “ABCDEF”,反转后,输出“FEDCBA” 
  4.  */  
  5. package com.reverse;  
  6.   
  7.   
  8. /** 
  9.  * @author snowdream 
  10.  *  
  11.  * @since 2012.03.05 
  12.  * 
  13.  */  
  14. public class StringReverse {  
  15.   
  16.   
  17.     /** 
  18.      *  
  19.      * ReverseString: 利用StringBuffer反转字符串 
  20.      * 
  21.      * @param      str  待反转字符串 
  22.      * @return     String 已反转字符串   
  23.      */   
  24.     public String ReverseString(String str){  
  25.         StringBuffer mstr = new StringBuffer(str);  
  26.           
  27.         System.out.println("Reversed String : "+ mstr.reverse().toString());  
  28.   
  29.   
  30.         return mstr.reverse().toString();  
  31.     }  
  32.       
  33.       
  34.     /** 
  35.      *  
  36.      * ReverseString1: 利用字符数组的方法反转字符串 
  37.      * 
  38.      * @param      str  待反转字符串 
  39.      * @return     String 已反转字符串   
  40.      */   
  41.     public String ReverseString1(String str){  
  42.         byte[] mchars = str.getBytes();  
  43.         byte temp = 0;  
  44.         int length = mchars.length;  
  45.           
  46.         for(int i = 0; i < length/2 ;i++){  
  47.             temp = mchars[i];  
  48.             mchars[i] = mchars[length -1 -i];  
  49.             mchars[length -1 -i] = temp;  
  50.         }  
  51.           
  52.         String mstr = new String(mchars);  
  53.           
  54.         System.out.println("Reversed String : "+ mstr);  
  55.       
  56.         return mstr;  
  57.     }  
  58.       
  59.       
  60.     /** 
  61.      * @param args 
  62.      */  
  63.     public static void main(String[] args) {  
  64.         StringReverse mReverse = new StringReverse();  
  65.           
  66.         //String str = "Hello World!";   
  67.         String str = "你好 中国!";  
  68.           
  69.         mReverse.ReverseString(str);  
  70.           
  71.         mReverse.ReverseString1(str);  
  72.           
  73.     }  
  74.   
  75.   
  76. }  

相关内容