docs: public String substring(final int beginIndex, final int endIndex) {
          if (beginIndex < 0) {
              throw new IndexOutOfBoundsException("Negative beginIndex: " + beginIndex);
          }
          if (endIndex > this.len) {
              throw new IndexOutOfBoundsException("endIndex: " + endIndex + " > length: " + this.len);
          }
          if (beginIndex > endIndex) {
              throw new IndexOutOfBoundsException("beginIndex: " + beginIndex + " > endIndex: " + endIndex);
          }
          return new String(this.array, beginIndex, endIndex - beginIndex);
      }