回文串
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是
回文串。
题目描述:
现有两个字符串A 和 B,将字符串B插入字符串A使产生的字符串是一个回文串。问:有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
public class HuiWen {
public static boolean HuiWen ( String s){
int i =0 ;
int j = s.length() - 1;
while( i < j ){
if( s.charAt(i) != s.charAt(j)){
return false;
}
i ++;
j --;
}
return true;
}
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("请输入原字符串");
String str1 = sc.nextLine();
System.out.println("请输入需要插入的字符串");
String str2 = sc.nextLine();
int count = 0;
for( int i =0 ; i <= str1.length() ; i ++){
StringBuilder sb = new StringBuilder(str1);
sb.insert(i,str2);
// println() 方法不接受StringBuilder类型的参数,所以一般使用toString() 方法,先把它变成字符串常量
if(HuiWen(sb.toString())){
count ++ ;
}
}
System.out.println("有"+count +"种方式形成回文字符串");
}
}
执行结果!
StringBuilder的主要StringBuilder是append和insert方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。 append方法始终在构建器的末尾添加这些字符; insert方法将insert添加到指定点。
每个字符串构建器都有一个容量。 只要字符串构建器中包含的字符序列的长度不超过容量,则不需要分配新的内部缓冲区。 如果内部缓冲区溢出,则会自动变大。