2 u011100157 u011100157 于 2014.02.21 20:04 提问

用java实现字符串的镜像翻转

用java实现一个方法,将一个字符串进行镜像翻转,例如ABC翻转为CBA,又如1234翻转为3412,再如abcde翻转为decab。

3个回答

mrq999
mrq999   2014.02.24 21:42

public static String doMirroringConvert(String str) {
str = convertStr(str);
// 字符串长度
int size = str.length();
// 是否是偶数
int IsEven = size % 2;
int centeEndIndex = size % 2 == 0 ? size >> 1 : (size - 1) >> 1;
StringBuilder sb = new StringBuilder();

// 字符串长度为偶数
if (IsEven == 0) {
    String start = convertStr(str.substring(0, centeEndIndex));
    String end = convertStr(str.substring(centeEndIndex, size));
    sb.append(start).append(end);
}
// 字符串长度为基数
else {
    String start = convertStr(str.substring(0, centeEndIndex));
    String center = convertStr(str.substring(centeEndIndex, centeEndIndex + 1));
    String end = convertStr(str.substring(centeEndIndex + 1, size));
    sb.append(start).append(center).append(end);
}

return sb.toString();

}
public static String convertStr(String str) {
// 将String 对象转换为可改变的StringBuffer类对象,然后调用StringBuffer类的reverse()方法实现反转
String strReverse = new StringBuffer(str).reverse().toString();
return strReverse;
}
算是一个勉强的实现吧,性能方面很差,只是一个初步的想法。

limeng650419
limeng650419   2014.04.25 09:06

public String doStr(String str){
char[] ch = str.toCharArray();
char[] data=new char[ch.lenth];
for(int i=0;i<ch.length:i++){
data[i]=ch[ch.length-i];
}
return new String(data);
}

wx301075522
wx301075522   2014.05.23 16:22

转化成字符数组(调用toCharArray()方法) ,然后把这个数组倒序输出就行

Csdn user default icon
上传中...
上传图片
插入图片