title: Search suggestion in strings
body: <p>I have a text file containing:
  <code>mariam amr sara john jessy salma mkkkkkaooooorllll</code></p>
  
  <p>the user enters a word to search for: for example: <code>maram</code></p>
  
  <p>As you can see, it does not exist in my text file .. I want to give suggestions, similar to the word maram is mariam</p>
  
  <p>I used longest common subsequence but it gives <code>mariam</code> and <code>mkkkkkaooooorllll</code> because both contain the Longest common subsequence "mar"</p>
  
  <p>I want to force the choice of mariam only
  Any ideas ?</p>
  
  <p>Thanks in advance</p>
  
  <pre><code>/**
   ** Java Program to implement Longest Common Subsequence Algorithm
   **/
  
  import java.io.BufferedReader;
  import java.io.InputStreamReader;
  import java.io.IOException;
  
     /** Class  LongestCommonSubsequence **/
      public class  LongestCommonSubsequence
      {    
     /** function lcs **/
      public String lcs(String str1, String str2)
      {
      int l1 = str1.length();
      int l2 = str2.length();
  
      int[][] arr = new int[l1 + 1][l2 + 1];
  
      for (int i = l1 - 1; i &gt;= 0; i--)
      {
          for (int j = l2 - 1; j &gt;= 0; j--)
          {
              if (str1.charAt(i) == str2.charAt(j))
                  arr[i][j] = arr[i + 1][j + 1] + 1;
              else 
                  arr[i][j] = Math.max(arr[i + 1][j], arr[i][j + 1]);
          }
      }
  
      int i = 0, j = 0;
      StringBuffer sb = new StringBuffer();
      while (i &lt; l1 &amp;&amp; j &lt; l2) 
      {
          if (str1.charAt(i) == str2.charAt(j)) 
          {
              sb.append(str1.charAt(i));
              i++;
              j++;
          }
          else if (arr[i + 1][j] &gt;= arr[i][j + 1]) 
              i++;
          else
              j++;
      }
  
  
      return sb.toString(); 
     //read text file, if a word contains sb.toString() , print it
  
  
  }
  
  /** Main Function **/
  public static void main(String[] args) throws IOException
  {    
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      System.out.println("Longest Common Subsequence Algorithm Test\n");
  
      System.out.println("\nEnter string 1");
      String str1 = br.readLine();
  
      System.out.println("\nEnter string 2");
      String str2 = br.readLine();
  
      LongestCommonSubsequence obj = new LongestCommonSubsequence(); 
      String result = obj.lcs(str1, str2);
  
      System.out.println("\nLongest Common Subsequence : "+ result);
  }
  </code></pre>
  
  <p>}</p>