Check if a String starts with any of the given prefixes in Java

Given a String and an array of prefixes. The task is to check whether the given String starts with any of the given prefixes or not.
Example:
Input: String = “Lazyroar”, Prefixes = {“Geeks”, “for”, “Gfor”}
Output: trueInput: String = “Lazyroar”, Prefixes = {“Freaks”, “for”, “Freak”}
Output: false
Below are the following approaches that can be used to complete the given task:
- Naive Approach: This method involves the checking the String for each of the prefix array element explicitly.
Algorithm:
- Get the string and the prefixes to be matched with.
- Using loop, iterate through the prefixes and check whether the string starts with the respective prefix. This is done with the help of String.startsWith() method.
- If any prefix is matched, then return true else return false.
Program 1:
classPrefixSearch {publicstaticvoidmain(String[] args){// Array of prefixesString[] arr = {"Geeks","for","Gfor"};// Given stringString str ="Lazyroar";booleanresult =false;// Check for each prefix elementfor(inti =0; i <3; i++) {if(str.startsWith(arr[i])) {result =true;break;}}if(result)System.out.println("Given String "+"starts with one of the prefixes.");elseSystem.out.println("Given String do not "+"starts with one of the prefixes.");}}Output:
Given String starts with one of the prefixes.
Program 2:
classPrefixSearch {publicstaticvoidmain(String[] args){// Array of prefixesString[] arr = {"Freaks","for","Freak"};// Given stringString str ="Lazyroar";booleanresult =false;// Check for each prefix elementfor(inti =0; i <3; i++) {if(str.startsWith(arr[i])) {result =true;break;}}if(result)System.out.println("Given String "+"starts with one of the prefixes.");elseSystem.out.println("Given String do not "+"starts with one of the prefixes.");}}Output:
Given String do not starts with one of the prefixes.
- Using Regular expression:
Algorithm:
- Get the string and the prefixes to be matched with.
- Form a Regular Expression to check if the string starts with any of the prefix. This can be done using String.matches() method.
- If any prefix is matched, then return true else return false.
Program 1:
classPrefixSearch {publicstaticvoidmain(String[] args){// Array of prefixesString[] arr = {"Geeks","for","Gfor"};// Given StringString str ="Lazyroar";// Check for prefixes using Regexif(str.matches("("+ arr[0] +"|"+ arr[1] +"|"+ arr[2] +").*"))System.out.println("Given String "+"starts with one of the prefixes.");elseSystem.out.println("Given String do not "+"starts with one of the prefixes.");}}Output:
Given String starts with one of the prefixes.
Program 2:
classPrefixSearch {publicstaticvoidmain(String[] args){// Array of prefixesString[] arr = {"Freaks","for","Freak"};// Given StringString str ="Lazyroar";// Check for prefixes using Regexif(str.matches("("+ arr[0] +"|"+ arr[1] +"|"+ arr[2] +").*"))System.out.println("Given String "+"starts with one of the prefixes.");elseSystem.out.println("Given String do not "+"starts with one of the prefixes.");}}Output:
Given String do not starts with one of the prefixes.
- Using Java 8 Streams API:
Algorithm:
- Get the string and the prefixes to be matched with.
- Convert the Prefixes into Stream using Stream.of()
- Check if any prefix matches using Predicate str::startsWith. This is done using Stream.anyMatch() method.
- If any prefix is matched, then return true else return false.
Program 1:
importjava.util.stream.Stream;classPrefixSearch {publicstaticvoidmain(String[] args){// Array of prefixesString[] arr = {"Geeks","for","Gfor"};// Given StringString str ="Lazyroar";// Convert the Prefixes into Stream using Stream.of()// and check if any prefix matches using Predicate// str::startsWithif(Stream.of(arr).anyMatch(str::startsWith))System.out.println("Given String "+"starts with one of the prefixes.");elseSystem.out.println("Given String do not "+"starts with one of the prefixes.");}}Output:
Given String starts with one of the prefixes.
Program 2:
importjava.util.stream.Stream;classPrefixSearch {publicstaticvoidmain(String[] args){// Array of prefixesString[] arr = {"Freaks","for","Freak"};// Given StringString str ="Lazyroar";// Convert the Prefixes into Stream using Stream.of()// and check if any prefix matches using Predicate// str::startsWithif(Stream.of(arr).anyMatch(str::startsWith))System.out.println("Given String "+"starts with one of the prefixes.");elseSystem.out.println("Given String do not "+"starts with one of the prefixes.");}}Output:
Given String do not starts with one of the prefixes.



