如下所示,下面是两种反转字符串的方法。
实践过程中发现,如果是中文字符串,第二种反转方法会输出乱码。
因此,建议首选第一种方法。
/**
* 反转字符串 演示实例
* 假设有一个字符串 “ABCDEF”,反转后,输出“FEDCBA”
*/
package com.reverse;
/**
* @author snowdream
*
* @since 2012.03.05
*
*/
public class StringReverse {
/**
*
* ReverseString: 利用StringBuffer反转字符串
*
* @param str 待反转字符串
* @return String 已反转字符串
*/
public String ReverseString(String str){
StringBuffer mstr = new StringBuffer(str);
System.out.println("Reversed String : "+ mstr.reverse().toString());
return mstr.reverse().toString();
}
/**
*
* ReverseString1: 利用字符数组的方法反转字符串
*
* @param str 待反转字符串
* @return String 已反转字符串
*/
public String ReverseString1(String str){
byte[] mchars = str.getBytes();
byte temp = 0;
int length = mchars.length;
for(int i = 0; i < length/2 ;i++){
temp = mchars[i];
mchars[i] = mchars[length -1 -i];
mchars[length -1 -i] = temp;
}
String mstr = new String(mchars);
System.out.println("Reversed String : "+ mstr);
return mstr;
}
/**
* @param args
*/
public static void main(String[] args) {
StringReverse mReverse = new StringReverse();
//String str = "Hello World!";
String str = "你好 中国!";
mReverse.ReverseString(str);
mReverse.ReverseString1(str);
}
}
欢迎大家关注我的微信公众号:
微信公众号:sn0wdr1am