public class Trivial {
   char[]text;
   char[]pattern;
   
   public void init() {
      initPattern("ABACABAD");
      initText("ABAABABCDFABACABADC");
   }
   public void start() {
      int matches;
      matches = match();
      System.out.println("Pattern was found "+matches+" times."); 
   }

   void initPattern(String p) {
      pattern = new char[p.length()];
      for (int i = 0; i < p.length(); i++) {
	 pattern[i] = p.charAt(i);
      }
   }

   void initText(String t) {
      text = new char[t.length()];
      for (int i = 0; i < t.length(); i++) {
	 text[i] = t.charAt(i);
      }
   }
   
   int match() {
      int numberOfMatches = 0;
      int j = 0, i = 0;
      do {
	 if (pattern[j] == text[i]) {
	    j++;
	    i++;
	 } else {
           i -= j - 1;
	   j = 0;
	 }
	 if (j == pattern.length) {
	    System.out.println("Pattern found from "+(i-pattern.length));
	    numberOfMatches++; 
	    j = 0;
	 }
      } while (i < text.length);
      return numberOfMatches;
   }

  public static void main(String [] a) {
  	Trivial trivial = new Trivial();
	if (a.length == 2) {
		trivial.initPattern(a[0]);
		trivial.initText(a[1]);
	}
	else
		trivial.init();
	System.out.println("Matches: " + trivial.match());
  }
}


