当我将许多十六进制字符插入到正在转换为整数值的字符串中时,我收到一个异常。
代码:
//variables used in this problem
int INT_MAX = 2147483647;
int INT_MIN = -2147483648;
int currentBase = 16;
string displayValue;
switch(currentBase) {
case 16:
if((Integer.valueOf(displayValue + "F", currentBase) >= INT_MIN) && (Integer.valueOf(displayValue + "F", currentBase) <= INT_MAX))
{
displayValue += "F";
}
break;
}
错误信息:
E/AndroidRuntime(6944): Caused by: java.lang.NumberFormatException: Invalid int: "FFFFFFFF"
E/AndroidRuntime(6944): at java.lang.Integer.invalidInt(Integer.java:138)
E/AndroidRuntime(6944): at java.lang.Integer.parse(Integer.java:378)
E/AndroidRuntime(6944): at java.lang.Integer.parseInt(Integer.java:366)
E/AndroidRuntime(6944): at java.lang.Integer.valueOf(Integer.java:510)
E/AndroidRuntime(6944): at com.example.calculator.MainActivity.send_f(MainActivity.java:968)
我需要这个字符串的值不大于 size int(32 位)。有什么建议么?