1、什么是回文
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如“上海自来水来自海上”或者“aba”。
【经典段子】上海某大学男生给女同学乙出上联求对:“上海自来水来自海上。”顺念倒念完全一样,难度极大!女生乙对曰:“山东落花生花落东山”;男生甲遂出绝对:“大波美人鱼人美波大”,女生乙对曰“明天到操场操到天明!”男生落败。
2、判断的方法
①字符串倒置后创建新字符串比较,代码如下:
public static void main(String[] args) {
String str = "";
System.out.println("请输入一个字符串:");
Scanner in = new Scanner(System.in);
str = in.nextLine();
//根据字符串创建一个字符缓存类对象
StringBuffer sb = new StringBuffer(str);
//将字符缓存中的内容倒置
sb.reverse();
String newStr = sb.toString();
if(str.equals(newStr)){
System.out.println(str + "-是回文字符串");
} else {
System.out.println(str + "-不是回文字符串!");
}
}
②字符串倒置后每个字符作比较,代码如下:
public static void main(String[] args) {
String str = "";
System.out.println("请输入一个字符串:");
Scanner in = new Scanner(System.in);
str = in.nextLine();
// 根据字符串创建一个字符缓存类对象
StringBuffer sb = new StringBuffer(str);
// 将字符缓存中的内容倒置
sb.reverse();
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == sb.charAt(i)) {
count++;
}
}
if (count == str.length()) {
System.out.println(str + "-是回文字符串");
} else {
System.out.println(str + "-不是回文字符串!");
}
}
③截取字符串字符做比较,代码如下:
public static void main(String[] args) {
String str = "";
System.out.println("请输入一个字符串:");
Scanner in = new Scanner(System.in);
str = in.nextLine();
int count = 0;
for (int i = 0; i < str.length()/2; i++) {
if ((str.substring(i, i+1)).equals(str.substring(str.length()-1-i, str.length()-i))) {
count++;
}
}
if (count == str.length()/2) {
System.out.println(str + "-是回文字符串");
} else {
System.out.println(str + "-不是回文字符串!");
}
}