Integer (String text) { try { if (text.startsWith(HEX_PREFIX)) { // should fit in 32 bits final long value = parseDigits(text.substring(2), 4, 32); return Integer.valueOf((int)value); } if (text.startsWith(BIN_PREFIX)) { // should fit in 32 bits final long value = parseDigits(text.substring(2), 1, 32); return Integer.valueOf((int)value); } if (StringUtil.startsWithChar(text, '0')) { // should fit in 32 bits final long value = parseDigits(text, 3, 32); return Integer.valueOf((int)value); } return parseIntegerNoPrefix(text); } catch (NumberFormatException e) { return null; } }