我写了一些代码将我的十六进制显示字符串转换为十进制整数。但是,当输入类似于 100a 或 625b (带有字母的东西)时,我收到如下错误:
java.lang.NumberFormatException:对于输入字符串:“100a”在 java.lang.NumberFormatException.forInputString(未知来源)在 java.lang.Integer.parseInt(未知来源)
如何将带字母的字符串转换为十进制整数?
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()));
}
}
原文由 vontarro 发布,翻译遵循 CC BY-SA 4.0 许可协议
看起来你的字符串中有一个额外的(前导)空格字符( “100a” )。您可以使用
trim()
删除前导和尾随空格:或者,如果您认为空格的存在意味着有其他问题,您将不得不自己调查,因为我们没有您的其余代码。