1.将字符串倒置后逐一比较,实现如下:
public class HuiWenTest { /** * @SERLIN */ public static void main(String[] args) { String str = ""; System.out.println("请输入一个字符串"); Scanner input = new Scanner(System.in); str = input.next(); StringBuffer sb = new StringBuffer(str); sb.reverse();// 将Str中的字符串倒置 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("此字符串是一个回文字符串"); } else { System.out.println("此字符串不是一个回文字符串"); } } }
2.将字符串倒置后创建新字符串直接比较,实现如下:
public class HuiWenTest2 { /** * @SERLIN */ public static void main(String[] args) { System.out.println("请输入一个字符串"); Scanner input = new Scanner(System.in); String str = input.next(); StringBuilder sb=new StringBuilder(str); sb.reverse();//将str倒置的方法 String newStr=new String(sb); if(str.equals(newStr)){ System.out.println(str+"是回文字符串"); }else{ System.out.println(str+"不是回文字符串"); } } }
3.使用截取字符串的方式比较,实现如下:
public class HuiWenTest3 { /** * @SERLIN */ public static void main(String[] args) { System.out.println("请输入一个字符串"); Scanner input = new Scanner(System.in); String str = input.next(); 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("是回文字符串"); }else{ System.out.println("不是回文字符串"); } } }
4.判断回文数字(判断纯数字),实现如下
public class HuiWenNum { /** * @SERLIN */ public static void main(String[] args) { int n; System.out.println("请输入一个整数:"); // 如果结果为回文数,跳出循环 while (true) { Scanner InpuNum = new Scanner(System.in); n = InpuNum.nextInt(); if (isHuiWen(n)) { System.out.println(n + "是回文数!"); break; } else { System.out.println(n + "不是回文数!"); } } } // 判断的数字是否是回文数 public static boolean isHuiWen(int n) { int m = reverse(n); if (m == n) { return true; } else { return false; } } // 将输入的数字进行倒置,以便进行判断是否是回文数 public static int reverse(int n) { int temp = 0;// 临时变量 int j = 0;// 倒置后的数字 temp = n;// 将输入的数字赋值给临时变量 while (temp != 0) { j = j * 10 + temp % 10; temp /= 10; } return j; } }
当然,还能先将数字转为字符串再判断,方法同上面的字符串判断一样.
除了上面的方法,当然还有其他很多,比如使用递归等.
也可以自己实现倒序字符串方法,如果大家有更好,更高效的方法希望能贴出来,大家一起学习!