我有一个我要转换为Integer的字符串,我知道这可以使用Integer.parseInt(number)
来实现
或者将Integer.parseInt(number, base)
用于特定的基础
我可以使用带有if else条件的上述函数来检查字符串表示的数字的基数。
例如:
int intValue;
if(string.startsWith("0x"))
intValue = Integer.parseInt(string.substring(2), 16)
//handle other cases
else
intValue - Integer.parseInt(string) //base 10
我想知道是否有任何内置函数执行将任何基数表示数字的字符串转换为相应整数的工作?
答案 0 :(得分:4)
Integer.decode(String nm)
完全符合您的需求。来自docs:
可选符号和/或基数说明符(“0x”,“0X”,“#”或前导零)后面的字符序列由Integer.parseInt方法解析,并带有指示的基数(10,16) ,或8)。
以下是负责基数区分的Integer
源代码片段:
if (nm.startsWith("0x", index) || nm.startsWith("0X", index)) {
index += 2;
radix = 16;
} else if (nm.startsWith("#", index)) {
index ++;
radix = 16;
} else if (nm.startsWith("0", index) && nm.length() > 1 + index) {
index ++;
radix = 8;
}