Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if pattern exists in a String

I would like to check if a pattern exists in a String using iteration.

Here is what I have currently but I keep getting false as a result of it.

public static void main(String args[]) {
        String pattern = "abc";
        String letters = "abcdef";

        char[] patternArray = pattern.toCharArray();
        char[] lettersArray = letters.toCharArray();

        for(int i = patternArray.length - 1; i<= 2; i++){
            for(int j = lettersArray.length - 1; j <= 5;j++){
                if(patternArray[i] == lettersArray[j]){
                    System.out.println("true");
                } else{
                    System.out.println("false");
                }
            }
        }
    }

Basically I would like to check if abc exists in the String abcdef

Note: I don't want to use regex because is too easy. I am trying to find a solution without it because I am curious how to do it with iteration.

like image 478
imbondbaby Avatar asked Jul 06 '26 12:07

imbondbaby


1 Answers

Here’s a naive string matching program that will find all matches of the pattern.

Not recommended for anything practical, because of the O(mn) time complexity (m and n are the lengths of the search string and pattern respectively).

class Potato 
{
    public static void main(String args[])
    {
        char[] search = "flow flow flow over me".toCharArray();
        char[] pattern = "flow".toCharArray();

        for(int i = 0; i <= search.length - pattern.length; i++)
          // `-` don't go till the end of the search str. and overflow
        {
            boolean flag = true;
            for(int j=0; j < pattern.length; j++) 
            {
                if(search[i + j] != pattern[j])
                {
                    flag = false;
                    break;
                }
            }
          if (flag)
                System.out.println("Match found at " + i);

        }
    }
}
like image 169
xrisk Avatar answered Jul 08 '26 00:07

xrisk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!