1. Introduction
A palindrome is a word, phrase, number, or other sequences of characters which reads the same backward as forward. In this blog post, we will create a Java program to check whether a given string is a palindrome.
2. Program Steps
1. Define a main method to serve as the entry point of the program.
2. Initialize a string variable with the text that we want to check.
3. Remove any non-alphanumeric characters and convert the string to lowercase to make the comparison case-insensitive.
4. Reverse the processed string and compare it with the original processed string.
5. If both are the same, then the string is a palindrome; otherwise, it is not.
3. Code Program
public class PalindromeCheck {
public static void main(String[] args) {
// Step 2: Initialize a string variable
String str = "A man, a plan, a canal: Panama";
// Step 3: Remove any non-alphanumeric characters and convert to lowercase
String processedStr = str.replaceAll("[\\W_]+", "").toLowerCase();
// Step 4: Reverse the processed string
String reversedStr = new StringBuilder(processedStr).reverse().toString();
// Step 5: Check if the processed string is equal to the reversed string
if (processedStr.equals(reversedStr)) {
System.out.println("\"" + str + "\" is a palindrome.");
} else {
System.out.println("\"" + str + "\" is not a palindrome.");
}
}
}
Output:
"A man, a plan, a canal: Panama" is a palindrome.
4. Step By Step Explanation
– Step 1: The main method is defined, which acts as the entry point of the program.
– Step 2: A string variable str is initialized with the text that we want to check.
– Step 3: Any non-alphanumeric characters are removed from str and it is converted to lowercase, resulting in processedStr.
– Step 4: The processedStr is reversed using StringBuilder and stored in reversedStr.
– Step 5: Finally, processedStr and reversedStr are compared. If they are the same, the original string is a palindrome; otherwise, it is not.
The above Java program efficiently checks whether a given string is a palindrome by comparing the original processed string with its reversed version.