docs: public static BigInteger newBigInteger(String str) {
  		str = StrUtil.trimToNull(str);
  		if (null == str) {
  			return null;
  		}
  
  		int pos = 0; // 数字字符串位置
  		int radix = 10;
  		boolean negate = false; // 负数与否
  		if (str.startsWith("-")) {
  			negate = true;
  			pos = 1;
  		}
  		if (str.startsWith("0x", pos) || str.startsWith("0X", pos)) {
  			// hex
  			radix = 16;
  			pos += 2;
  		} else if (str.startsWith("#", pos)) {
  			// alternative hex (allowed by Long/Integer)
  			radix = 16;
  			pos++;
  		} else if (str.startsWith("0", pos) && str.length() > pos + 1) {
  			// octal; so long as there are additional digits
  			radix = 8;
  			pos++;
  		} // default is to treat as decimal
  
  		if (pos > 0) {
  			str = str.substring(pos);
  		}
  		final BigInteger value = new BigInteger(str, radix);
  		return negate ? value.negate() : value;
  	}