public static void main(String[] args) {
System.out.println(getString("hiooih"));
}
private static String getString(String oldStr) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < oldStr.length(); i++) {
buffer.append(oldStr.charAt(i));
if (i!= oldStr.length()-1){
buffer.append("-");
}
}
//将传入进来的字符串转化为一定是 单数类型的
String str = buffer.toString();
//Maxstr用来存最长的数
String maxStr ="";
//以每一个原素为中心点 找出最长的str
for (int i = 1; i < str.length(); i++) {
//最多影响的行数
int maxreflect =i;
//若i(元素)的角标大于 字符串的一半,求出它将影响的 范围
if (i>(str.length()/2)){
maxreflect =str.length()-i-1;
}
int j=1;
//以元素为中心 按范围循环,找出回文 最长的字符串
while (j<=maxreflect){
if (str.charAt(i-j) == str.charAt(i+j)){
if (maxStr.length()<=2*j+1 )
maxStr =str.substring(i-j,i+j+1);
}else break;
j++;
}
}
//将我们加入的元素去掉
String[] split = maxStr.split("-");
System.out.println("split "+ Arrays.toString(split));
StringBuilder builder = new StringBuilder();
for (String s : split) {
builder.append(s);
}
return builder.toString();
}
}
05-27
316
04-16
963
09-22
160
09-21
308
09-17