document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. //  Search word in given String
  2. //  *case sensitive
  3. //
  4.  
  5. import java.util.Scanner;
  6. public class nrp5213100087 {
  7.     public static void main (String[] args) {
  8.         search start = new search();
  9.     }
  10. }
  11.  
  12. class search {
  13.     String field;
  14.     String key;
  15.     Scanner get = new Scanner(System.in);
  16.     char[] raw;
  17.     char[] find;
  18.     boolean[] num;
  19.     int lev=-1,rig=-1;
  20.    
  21.     void finder(int a, int b) {     // a=raw b=key
  22.             if(b>=key.length()-1||a>=field.length()-1) {}
  23.             else
  24.             if(raw[a]==find[b]) {
  25.                 num[a]=true;
  26.                 finder(a+1,b+1);
  27.             }
  28.             else {
  29.                 reset();
  30.                 finder(a+1,0);
  31.             }
  32.     }
  33.    
  34.     void fill(String str, char[] arr) {
  35.         for (int i = 0; i < str.length()-1; i++) {
  36.             arr[i]=str.charAt(i);
  37.         }
  38.     }
  39.  
  40.     void out() {
  41.         for (int i = 0; i < field.length(); i++) {
  42.             if(num[i]==true) {
  43.                lev=1+i;
  44.                rig=1+i+key.length()-1;
  45.                break;
  46.             }
  47.            
  48.         }
  49.     }
  50.    
  51.     void reset() {
  52.         for (int i = 0; i < field.length()-1; i++) {
  53.             num[i]=false;
  54.         }
  55.     }
  56.    
  57.     search() {
  58.         System.out.print("String input : ");
  59.         field = get.nextLine();
  60.         raw = new char[field.length()+1];
  61.         num = new boolean[field.length()+1];
  62.         fill(field, raw);
  63.        
  64.         reset();
  65.  
  66.         System.out.print("Keyword : ");
  67.         key = get.nextLine();
  68.         find = new char[key.length()+1];
  69.         fill(key, find);
  70.        
  71.         finder(0,0);
  72.        
  73.         out();
  74.  
  75.         /* debugg
  76.         for (int i = 0; i < field.length(); i++) {
  77.             if(num[i]==true)
  78.                 System.out.print("1 ");
  79.             else
  80.                 System.out.print("0 ");
  81.         }  */
  82.        
  83.         if(lev!=-1) {
  84.             System.out.printf("\\nKata ditemukan\\nIndex %d-%d\\n",lev,rig);
  85.         }
  86.         else
  87.             System.out.println("\\nKata tidak ditemukan\\n");
  88.        
  89.     }
  90. }
');