对于一个字符串,如果从前向后读和从后向前读都是同一个字符串,则称之为回文串。
一种解决方案是:先判断该字符串的第一个字符和最后一个字符是否相等。如果相等,检查第二个字符和倒数第二个字符是否相等。这个过程持续进行,直到出现不匹配的情况或者串中所有的字符都检查完毕,当字符串有奇数个字符时,不用检查中间字符。
package com.dx.ex;
import java.util.Scanner;
public class CheckPalindrome {
public static void main(String[] args) {
// Create a scanner
Scanner input = new Scanner(System.in);
// prompt the user to enter a string
System.out.println("Enter a string:");
String s = input.nextLine();
if (isPalindrome(s)) {
System.out.println(s + " is a palindrome");
} else {
System.out.println(s + " is not a palindrome");
}
}
/** Check if a string is a palindrome */
public static boolean isPalindrome(String s) {
// The index of the first character in the string
int low = 0;
// The index of the last character in the string
int high = s.length() - 1;
while (low < high) {
if (s.charAt(low) != s.charAt(high)) {
return false;// Not a palindrome
}
low++;
high--;
}
return true;// The string is a palindrome
}
}