code: public static String substring(String str, int start) {
          if (str == null) {
              return null;
          }
  
          // handle negatives, which means last n characters
          if (start < 0) {
              start = str.length() + start; // remember start is negative
          }
  
          if (start < 0) {
              start = 0;
          }
          if (start > str.length()) {
              return "";
          }
  
          return str.substring(start);
      }
docs: <p>Gets a substring from the specified String avoiding exceptions.</p>
  <p>A negative start position can be used to start <code>n</code>
  characters from the end of the String.</p>
  <p>A <code>null</code> String will return <code>null</code>.
  An empty ("") String will return "".</p>
  <pre>
  StringUtils.substring(null, *)   = null
  StringUtils.substring("", *)     = ""
  StringUtils.substring("abc", 0)  = "abc"
  StringUtils.substring("abc", 2)  = "c"
  StringUtils.substring("abc", 4)  = ""
  StringUtils.substring("abc", -2) = "bc"
  StringUtils.substring("abc", -4) = "abc"
  </pre>
  
  @param str   the String to get the substring from, may be null
  @param start the position to start from, negative means
  count back from the end of the String by this many characters
  @return substring from start position, <code>null</code> if null String input