code: public static int locate(String search, String s, Integer start) {
  
          if (s == null || search == null) {
              return 0;
          }
  
          int i = (start == null) ? 0
                                  : start.intValue() - 1;
  
          return s.indexOf(search, (i < 0) ? 0
                                           : i) + 1;
      }
docs: Returns the starting position of the first occurrence of
  the given <code>search</code> <code>String</code> object within
  the given <code>String</code> object, <code>s</code>.
  
  The search for the first occurrence of <code>search</code> begins with
  the first character position in <code>s</code>, unless the optional
  argument, <code>start</code>, is specified (non-null). If
  <code>start</code> is specified, the search begins with the character
  position indicated by the value of <code>start</code>, where the
  first character position in <code>s</code> is indicated by the value 1.
  If <code>search</code> is not found within <code>s</code>, the
  value 0 is returned.
  @param search the <code>String</code> occurence to find in <code>s</code>
  @param s the <code>String</code> within which to find the first
  occurence of <code>search</code>
  @param start the optional character position from which to start
  looking in <code>s</code>
  @return the one-based starting position of the first occurrence of
  <code>search</code> within <code>s</code>, or 0 if not found