如何编写一段 Java 代码来检查字符串是否可转换为整数,即它的任何字符是否可转换为 0 到 9 之间的整数?我想到了这样的事情:
String s = "...";
for (int i = 0; i < s.length(); i++)
{
int h = Integer.parseInt(s.substring(i, i + 1));
if (h < 0 || h > 9)
throw new IntegerFormatException();
}
catch (IntegerFormatException e)
{
System.out.println("This is not an integer");
}
其中 IntegerFormat Exception 类似于
public class IntegerFormatException extends Exception
{
public IntegerFormatException()
{
super ("This string isn't convertible to an integer");
}
public IntegerFormatException(String message)
{
super (message);
}
}
但是,如果我然后尝试使用“8&35”作为字符串的代码,我不会收到消息“这不是整数”,但会收到 IDE 自动红色墨水消息说明
线程“main”中的异常 java.lang.NumberFormatException:对于输入字符串:“&”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at project.pkg9.pkg2.Project92.main(Project92.java:60)
Java 结果:1
我的代码错了吗?如果是,我该如何解决?非常感谢您的所有回答。