public static int parseInt(String number) throws NumberFormatException {
		if (StrUtil.isBlank(number)) {
			return 0;
		}

		if (StrUtil.startWithIgnoreCase(number, "0x")) {
			// 0x04表示16进制数
			return Integer.parseInt(number.substring(2), 16);
		}

		if (StrUtil.containsIgnoreCase(number, "E")) {
			// 科学计数法忽略支持，科学计数法一般用于表示非常小和非常大的数字，这类数字转换为int后精度丢失，没有意义。
			throw new NumberFormatException(StrUtil.format("Unsupported int format: [{}]", number));
		}

		try {
			return Integer.parseInt(number);
		} catch (NumberFormatException e) {
			return parseNumber(number).intValue();
		}
	}
@Test
	public void parseIntTest() {
		int number = NumberUtil.parseInt("0xFE");
		assertEquals(254, number);

		// 0开头
		number = NumberUtil.parseInt("010");
		assertEquals(10, number);

		number = NumberUtil.parseInt("10");
		assertEquals(10, number);

		number = NumberUtil.parseInt("   ");
		assertEquals(0, number);

		number = NumberUtil.parseInt("10F");
		assertEquals(10, number);

		number = NumberUtil.parseInt("22.4D");
		assertEquals(22, number);

		number = NumberUtil.parseInt("22.6D");
		assertEquals(22, number);

		number = NumberUtil.parseInt("0");
		assertEquals(0, number);

		number = NumberUtil.parseInt(".123");
		assertEquals(0, number);
	}