بالامكان اساتذتي الكرام  تتكرموا بتوضيح كود  خوارزمية التعرف على النصوص
	// Java Implementation
	// Knuth - Morris - Pratt Algorithm
	 
	class JavaKMP {
	   public static void main (String args[]) {
	      JavaKMP kmp = new JavaKMP("aaabaaaabaaaaab");
	      System.out.println("Find (aaaaa) At Index : " + kmp.search("aaaaa") );
	   }
	 
	   public JavaKMP ()                      { mText = ""  ; mPattern = ""      ; }
	   public JavaKMP (String txt)             { mText = txt ; mPattern = ""      ; }
	   public JavaKMP (String txt, String pattern) { mText = txt ; mPattern = pattern ; }
	 
	   public int search()                   { return search(mText,mPattern)    ; }
	   public int search(String pattern)          { return search(mText,pattern)     ; }
	 
	   public int search(String text , String pattern) {
	      int prefixArray[] = new int[pattern.length()];
	 
	      initializeToZero(prefixArray,pattern.length());
	      preProcessing(pattern,prefixArray);
	 
	      int i = 0 , match = 0 ;
	      while ( i < text.length() ) {
	         if ( text.charAt(i) == pattern.charAt(match)  )  {
	            match++ ;
	            if ( match == pattern.length() )
	               return i