Introduction
A palindrome is a string that reads the same forward and backward. For example, "madam" and "racecar" are palindromes. This guide will show you how to create a Java program that checks whether a given string is a palindrome.
Problem Statement
Create a Java program that:
- Takes a string as input.
- Checks if the string is a palindrome.
- Displays the result indicating whether the string is a palindrome.
Example 1:
- Input:
"madam"
- Output:
"madam" is a palindrome.
Example 2:
- Input:
"hello"
- Output:
"hello" is not a palindrome.
Approach 1: Using a for
Loop
Java Program
import java.util.Scanner;
/**
* Java Program to Check Palindrome String using for loop
* Author: https://www.javaguides.net/
*/
public class PalindromeCheckForLoop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Step 1: Prompt the user for input
System.out.print("Enter a string to check if it is a palindrome: ");
String input = scanner.nextLine();
// Step 2: Check if the string is a palindrome using a for loop
boolean isPalindrome = isPalindrome(input);
// Step 3: Display the result
if (isPalindrome) {
System.out.println("\"" + input + "\" is a palindrome.");
} else {
System.out.println("\"" + input + "\" is not a palindrome.");
}
}
// Method to check if a string is a palindrome using a for loop
public static boolean isPalindrome(String str) {
int n = str.length();
for (int i = 0; i < n / 2; i++) {
if (str.charAt(i) != str.charAt(n - i - 1)) {
return false;
}
}
return true;
}
}
Explanation
- Input: The program prompts the user to enter a string.
- Palindrome Check: A
for
loop is used to compare characters from the beginning and end of the string, moving toward the center. If any characters don't match, the string is not a palindrome. - Output: The program prints whether the string is a palindrome or not.
Output Example
Enter a string to check if it is a palindrome: madam
"madam" is a palindrome.
Enter a string to check if it is a palindrome: hello
"hello" is not a palindrome.
Approach 2: Using StringBuilder
's reverse()
Method
Java Program
import java.util.Scanner;
/**
* Java Program to Check Palindrome String using StringBuilder
* Author: https://www.javaguides.net/
*/
public class PalindromeCheckStringBuilder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Step 1: Prompt the user for input
System.out.print("Enter a string to check if it is a palindrome: ");
String input = scanner.nextLine();
// Step 2: Check if the string is a palindrome using StringBuilder's reverse method
String reversed = new StringBuilder(input).reverse().toString();
// Step 3: Display the result
if (input.equals(reversed)) {
System.out.println("\"" + input + "\" is a palindrome.");
} else {
System.out.println("\"" + input + "\" is not a palindrome.");
}
}
}
Explanation
- Input: The program prompts the user to enter a string.
- Palindrome Check: The input string is reversed using the
StringBuilder
'sreverse()
method. The original string is then compared to the reversed string. - Output: The program prints whether the string is a palindrome or not.
Output Example
Enter a string to check if it is a palindrome: racecar
"racecar" is a palindrome.
Enter a string to check if it is a palindrome: world
"world" is not a palindrome.
Approach 3: Using Recursion
Java Program
import java.util.Scanner;
/**
* Java Program to Check Palindrome String using Recursion
* Author: https://www.javaguides.net/
*/
public class PalindromeCheckRecursion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Step 1: Prompt the user for input
System.out.print("Enter a string to check if it is a palindrome: ");
String input = scanner.nextLine();
// Step 2: Check if the string is a palindrome using recursion
boolean isPalindrome = isPalindrome(input, 0, input.length() - 1);
// Step 3: Display the result
if (isPalindrome) {
System.out.println("\"" + input + "\" is a palindrome.");
} else {
System.out.println("\"" + input + "\" is not a palindrome.");
}
}
// Recursive method to check if a string is a palindrome
public static boolean isPalindrome(String str, int left, int right) {
if (left >= right) {
return true; // Base case: all characters have been checked
}
if (str.charAt(left) != str.charAt(right)) {
return false; // Characters do not match
}
return isPalindrome(str, left + 1, right - 1); // Recurse for next characters
}
}
Explanation
- Input: The program prompts the user to enter a string.
- Palindrome Check: A recursive method checks if the string is a palindrome by comparing the first and last characters, then moving inward. If all characters match, the string is a palindrome.
- Output: The program prints whether the string is a palindrome or not.
Output Example
Enter a string to check if it is a palindrome: level
"level" is a palindrome.
Enter a string to check if it is a palindrome: example
"example" is not a palindrome.
Conclusion
This Java program provides multiple methods to check if a string is a palindrome, demonstrating different techniques such as loops, StringBuilder
, and recursion. Each approach is useful in different contexts, and the choice of method may depend on the specific requirements, such as readability, performance, or coding style. These methods are commonly used in various string manipulation tasks in Java.
Comments
Post a Comment
Leave Comment