我写了一些代码来将我的十六进制显示字符串转换为十进制整数。但是,当输入类似于 100a 或 625b(带有字母的东西)时,我收到如下错误:
java.lang.NumberFormatException: For input string: " 100a" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source)
如何将带有字母的字符串转换为十进制整数?
if(display.getText() != null)
{
if(display.getText().contains("a") || display.getText().contains("b") ||
display.getText().contains("c") || display.getText().contains("d") ||
display.getText().contains("e") || display.getText().contains("f"))
{
temp1 = Integer.parseInt(display.getText(), 16);
temp1 = (double) temp1;
}
else
{
temp1 = Double.parseDouble(String.valueOf(display.getText()));
}
}
最佳答案
您的字符串中似乎有一个额外的(前导)空格字符(“100a”)。您可以使用 trim()
删除前导和尾随空格:
temp1 = Integer.parseInt(display.getText().trim(), 16);
或者,如果您认为空格的存在意味着还有其他问题,您必须自己查看,因为我们没有您的其余代码。
关于java - 将一些十六进制字符串转换为十进制整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110533/