code: public static String addStart(String str, String add) {
          if (isNullOrEmpty(add)) {
              return str;
          }
  
          if (isNullOrEmpty(str)) {
              return add;
          }
  
          if (!str.startsWith(add)) {
              return add + str;
          }
  
          return str;
      }
docs: <p>Adds a substring only if the source string does not already start with the substring,
  otherwise returns the source string.</p>
  <p/>
  <p>A {@code null} source string will return {@code null}.
  An empty ("") source string will return the empty string.
  A {@code null} search string will return the source string.</p>
  <p/>
  <pre>
  StringUtils.addStart(null, *)      = *
  StringUtils.addStart("", *)        = *
  StringUtils.addStart(*, null)      = *
  StringUtils.addStart("domain.com", "www.")  = "www.domain.com"
  StringUtils.addStart("abc123", "abc")    = "abc123"
  </pre>
  
  @param str the source String to search, may be null
  @param add the String to search for and add, may be null
  @return the substring with the string added if required