find palindrome substring in string in java code example

Example 1: Java program to check palindrome string using recursion

import java.util.Scanner;
public class RecursivePalindromeJava 
{
   // to check if string is palindrome using recursion
   public static boolean checkPalindrome(String str)
   {
      if(str.length() == 0 || str.length() == 1)
         return true; 
      if(str.charAt(0) == str.charAt(str.length() - 1))
         return checkPalindrome(str.substring(1, str.length() - 1));
      return false;
   }
   public static void main(String[]args)
   {
      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter a string : ");
      String strInput = sc.nextLine();
      if(checkPalindrome(strInput))
      {
         System.out.println(strInput + " is palindrome");
      }
      else
      {
         System.out.println(strInput + " not a palindrome");
      }
      sc.close();
   }
}

Example 2: Java program to check whether string is palindrome using library methods

public class StringPalindromeJava
{
   public static void isPalindrome(String str)
   {
      String strReverse = new StringBuffer(str).reverse().toString();
       // checking for palindrome
      if(str.equals(strReverse))
      {
         System.out.println(str + " is palindrome string.");
      }
      else
      {
         System.out.println(str + " is not palindrome string.");
      }
   }
   public static void main(String[] args)
   {
      // palindrome java
      isPalindrome("eye");
      isPalindrome("rotator");
   }
}

Example 3: find a substring in a string java

package hello;

public class SubStringProblem {

  public static void main(String[] args) {

    // 1st example - You can use the indexOf() method to check if
    // a String contains another substring in Java
    // if it does then indexOf() will return the starting index of
    // that substring, otherwise it will return -1

    System.out
        .println("Checking if one String contains another String using indexOf() in Java");
    String input = "Java is the best programming language";
    boolean isPresent = input.indexOf("Java") != -1 ? true : false;

    if (isPresent) {
      System.out.println("input string: " + input);
      System.out.println("search string: " + "Java");
      System.out.println("does String contains substring? " + "YES");
    }

    // indexOf is case-sensitive so if you pass wrong case, you will get wrong
    // result
    System.out.println("Doing search with different case");
    isPresent = input.indexOf("java") != -1 ? true : false;
    System.out.println("isPresent: " + isPresent); // false because indeOf() is
                                                   // case-sensitive

    // 2nd example - You can also use the contains() method to check if
    // a String contains another String in Java or not. This method
    // returns a boolean, true if substring is found on String, or false
    // otherwise.
    // if you need boolean use this method rather than indexOf()
    System.out
        .println("Checking if one String contains another String using contains() in Java");
    input = "C++ is predecessor of Java";
    boolean isFound = input.contains("Java");
    if (isFound) {
      System.out.println("input string: " + input);
      System.out.println("search string: " + "Java");
      System.out.println("does substring is found inside String? " + "YES");
    }

    // contains is also case-sensitive
    System.out.println("Searching with different case");
    isFound = input.contains("java");
    System.out.println("isFound: " + isFound); // false because indeOf() is
                                               // case-sensitive

  }
}

Output
Checking if one String contains another String using indexOf() in Java
input string: Java is the best programming language
search string: Java
does String contain substring? YES
Doing search with different case
isPresent: false
Checking if one String contains another String using contains() in Java
input string: C++ is the predecessor of Java
search string: Java
does substring is found inside String? YES
Searching for different case
isFound: false

Example 4: find all the palindrome substring in a given string

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

// expand in both directions of low and high to find all palindromes
void expand(string str, int low, int high, auto &set)
{
	// run till str[low.high] is a palindrome
	while (low >= 0 && high < str.length()
			&& str[low] == str[high])
	{
		// push all palindromes into the set
		set.insert(str.substr(low, high - low + 1));

		// expand in both directions
		low--, high++;
	}
}

// Function to find all unique palindromic substrings of given string
void allPalindromicSubstrings(string str)
{
	// create an empty set to store all unique palindromic substrings
	unordered_set<string> set;

	for (int i = 0; i < str.length(); i++)
	{
		// find all odd length palindrome with str[i] as mid point
		expand(str, i, i, set);

		// find all even length palindrome with str[i] and str[i+1] as
		// its mid points
		expand(str, i, i + 1, set);
	}

	// print all unique palindromic substrings
	for (auto i : set)
		cout << i << " ";
}

int main()
{
	string str = "google";

	allPalindromicSubstrings(str);

	return 0;
}