The StringBuilder in Java represents a mutable sequence of characters. Since the String Class in Java creates and immutable sequence of characters, the StringBuilder class provides an alternate to String Class, as it creates a mutable sequence of characters.
package testjava.javatest;
import java.util.Scanner;
public class StringPalinBuilder
{
public static void main(String args[])
{
Scanner reader = new Scanner(System.in);
System.out.print("Please enter a String: ");
String input = reader.nextLine();
System.out.printf("Is %s a palindrome? : %b %n", input, isPalindrome(input));
System.out.print("Please enter another String: ");
input = reader.nextLine();
System.out.printf("Is %s a palindrome? : %b %n", input, isPalindrome(input));
reader.close();
}
public static boolean isPalindrome(String inputStr)
{
if (inputStr == null || inputStr.isEmpty())
{
return true;
}
char[] array = inputStr.toCharArray();
StringBuilder sb = new StringBuilder(inputStr.length());
// Add each char of inputStr to StringBuilder from reverse
for (int i = inputStr.length() - 1; i >= 0; i--)
{
sb.append(array[i]);
}
String reverseOfString = sb.toString();
//Compare 2 strings input and reverseOfString
return inputStr.equals(reverseOfString);
}
}
Output
Please enter a String: Hello
Is Hello a palindrome? : false
Please enter another String: wow
Is wow a palindrome? : true