Longest Starting Match : String substring « Data Type « Java






Longest Starting Match

     
public class Util{

  public static String longestStartingMatch(String source1, String source2)
  {
    /**
     * I starting with the regex lookingAt() but it wasn't working for the test
     * cases I had (comparison of BigDecimals... DaC seems to work ok.
     */
    
    int min = 0;
    int max = source1.length();
    int cur = max/2;
    while(true)
    {
      if(source2.regionMatches(0, source1, 0, cur))
      {
        min = cur;
        cur+= (max-cur)/2;
        if(cur == min)
        {
          if(source2.regionMatches(0, source1, 0, max))
            cur = max;

          break;
        }
      }else{
        max = cur;
        cur-= (cur-min)/2;
        if(cur == max)
        {
          if(source2.regionMatches(0, source1, 0, min))
            cur = min;

          break;
        }
      }
    }

    return source2.substring(0, cur);
  }
}

   
    
    
    
    
  








Related examples in the same category

1.uses substrings to replace all the vowels in a string entered by the user with asterisks:
2.SubString DemoSubString Demo
3.Getting a substring from a String
4.Check if String Contains another String
5.Remove a character at a specified position using String.substring
6.Substrings First occurrence
7.Last occurrence of a substring
8.Find the first index of any of a set of potential substrings.
9.Find the latest index of any of a set of potential substrings.
10.Gets the substring after the first occurrence of a separator. The separator is not returned.
11.Gets the substring after the last occurrence of a separator. The separator is not returned.
12.Gets the substring before the first occurrence of a separator. The separator is not returned.
13.Gets the substring before the last occurrence of a separator. The separator is not returned.
14.Overlays part of a String with another String.
15.Gets len characters from the middle of a String.
16.Gets the String that is nested in between two Strings. Only the first match is returned.
17.Gets the String that is nested in between two instances of the same String.
18.Gets a substring from the specified String avoiding exceptions
19.Count the number of instances of substring within a string
20.Counts how many times the substring appears in the larger String.
21.Return a slice (substring) of the passed in value, optionally trimmed.
22.Returns an array of strings that contains all strings given by the first and second string array.
23.Returns a string that contains all given strings concatenated and separated by the specified separator.
24.Returns all elements of string array in a new array from index start up to index end (inclusive).
25.Returns all elements of string array from in a new array from index start up to index end (inclusive).
26.Returns the portion of the given string that comes before the last occurance of the specified separator.
27.Returns the portion of the given string that stands after the last occurance of the specified separator.
28.Returns a title-cased version of the specified word