日期:2014-05-18 浏览次数:20794 次
//以下只是大概思路,可能会有错的地方
String str == "ABCDFEEFCBA ";
StringBuilder sb = new StringBuilder(str);
String strTemp = sb.reverse().toString();//abc 则返回的是cba
if(str.equals(strTemp)){//你说的第二种情况、但是不知道abba这种是不是也返回
return strTemp ;
}else{
//思路:str = ABCFECBA; reverse() 后:str2 = ABCEFCBA;
//依次逐个比较,只要有一个不等,则不是需要返回的字符,如果依次相等,则是要反回的字符,
//但是只需要比较到一般的位置(strBytes.length/2),ABCDDCBA,ABCDCBA这两种要区分一下。
StringBuilder sb2 = new StringBuilder();
int len = str.length();
byte[] strBytes = str.getBytes();
byte[] strTempBytes = str.getBytes();
boolean falg = false;
for(int i=0;i<strBytes.length/2;i++){
if(strBytes[i] != strTempBytes[i]){
flag = true;
}
if(strBytes[i]==strTempBytes[i] && flaf == false){
sb2.append(strBytes[i]);
}
}
}
public class StringDemo
{
public static void main(String[] args)
{
System.out.println("ABCFECBA" + "\t返回\t" + getStr("ABCFECBA"));
System.out.println("ABA" + "\t\t返回\t" + getStr("ABA"));
System.out.println("ABC" + "\t\t返回\t" + getStr("ABC"));
System.out.println("ABCDFEEFCBA" + "\t返回\t" + getStr("ABCDFEEFCBA"));