In this post, we will see “How to check if the String or Number is Palindrome or not with the help of Java 8 Streams API?”

Java 8 Streams power to test Palindrome... Check it out...!!! Share on X

Here, we are going to cover below points:

  1. What is Palindrome?
  2. How to check a Palindrome using Java 8?
  3. How to check a Palindrome through other ways?

Check out: How to Pass Lambda as a Parameter in Java 8

Let’s begin,

1. What is Palindrome?

Palindrome is a word, phrase, or sequence that reads the same backward as forward, e.g., madam or level or radar etc.

Also, palindrome numbers are those numbers which represent same number if all digits are reversed. e.g., 10001

2. How to check Palindrome using Java 8?

Let’s say: In this particular example, we are checking if ‘radar’ & ‘apple’ are palindromes or not.

Example

import java.util.stream.IntStream;

public class Check_Palindrome_String_Using_Streams_Java8 {

    public static void main(String[] args) {

        //Check if 'radar' is Palindrome
        System.out.println("Is radar a Palindrome? - " + isPalindrome("radar")); //true

        //Check if 'apple' is Palindrome
        System.out.println("Is apple a Palindrome? - " + isPalindrome("apple")); //false
    }

    public static boolean isPalindrome(String originalString) {

        String tempString = originalString.replaceAll("\\s+", "").toLowerCase();

        return IntStream.range(0, tempString.length() / 2)
            .noneMatch(i - > tempString.charAt(i) != tempString.charAt(tempString.length() - i - 1));

    }
}

Output:

is radar a Palindrome? - true
is apple a Palindrome? - false

3. How to check Palindrome through other ways?

Using For-Loop:

public class Check_Palindrome_String_Using_ForLoop_Java {

    public static void main(String[] args) {

        //Check if 'radar' is Palindrome
        System.out.println("Is radar a Palindrome? - " + isPalindrome("radar")); //true

        //Check if 'apple' is Palindrome
        System.out.println("Is apple a Palindrome? - " + isPalindrome("apple")); //false
    }

    public static boolean isPalindrome(String orinalString) {

        String reversedString = "";

        for (int i = orinalString.length() - 1; i >= 0; i--)
            reversedString = reversedString + orinalString.charAt(i);

        return orinalString.equals(reversedString);

    }
}

Using StringBuilder:

public class Check_Palindrome_String_Using_StringBuilder_Java {

    public static void main(String[] args) {

        //Check if 'radar' is Palindrome
        System.out.println("Is radar a Palindrome? - " + isPalindrome("radar")); //true

        //Check if 'apple' is Palindrome
        System.out.println("Is apple a Palindrome? - " + isPalindrome("apple")); //false
    }

    public static boolean isPalindrome(String originalString) {

        String reversedString = new StringBuilder(originalString).reverse().toString();

        return originalString.equals(reversedString);

    }
}

Using Apache StringUtils:

import org.apache.commons.lang3.StringUtils;

public class Check_Palindrome_String_Using_Apache_StringUtils_Java {

    public static void main(String[] args) {

        //Check if 'radar' is Palindrome
        System.out.println("Is radar a Palindrome? - " + isPalindrome("radar")); //true

        //Check if 'apple' is Palindrome
        System.out.println("Is apple a Palindrome? - " + isPalindrome("apple")); //false
    }

    public static boolean isPalindrome(String orinalString) {

        String reversedString = StringUtils.reverse(orinalString);

        return orinalString.equals(reversedString);

    }
}

All the above ways of verifying the Palindrome will generate the same output. 

That’s it, Java 8 Streams API is so powerful and notice how easily it simplified the way of checking the Palindrome.

Java 8 Streams power to test Palindrome... Check it out...!!! Share on X

Do you like this Post? – then check my other helpful posts:

Other Useful References:

Author

  • Deepak Verma

    Deepak Verma is a Test Automation Consultant and Software development Engineer for more than 10 years. His mission is to help you become an In-demand full stack automation tester.

    He is also the founder of Techndeck, a blog and online coaching platform dedicated to helping you succeed with all the automation basics to advanced testing automation tricks.

    View all posts