如何确保String输入不是数字?

时间:2014-02-17 22:16:49

标签: java

我正在使用do..while循环,而我正在使用

while (intOne != intTwo && colorOne != 0 && colorTwo != 0);

问题是我收到以下错误。 “不兼容的操作数类型String和int”

我知道这是因为我的colorOne和colorTwo是字符串,我试图说它们不等于int。

我认为这与演员和东西有关,但我是新手,需要帮助!

3 个答案:

答案 0 :(得分:1)

您应该从String中解析int:

Integer.parseInt( colorOne )

所以你的代码看起来像这样:

while (intOne != intTwo && Integer.parseInt( colorOne ) 
    != 0 && Integer.parseInt( colorTwo ) != 0);

答案 1 :(得分:1)

您不需要转换。只需控制字符串匹配,如:

while (intOne != intTwo && !colorOne.equals("0") && !colorTwo.equals("0"));

这样,代码不会将可能的字符串抛给整数转换异常。需要注意的是==!=运算符在一般情况下不能用于字符串比较,它们比较了Java中的引用相等性。

答案 2 :(得分:0)

使用以下命令将字符串转换为整数:

Integer.parseInt(colorOne)

您还需要检查colorOne实际上是否为整数,例如捕获异常时抛出的异常并在那里打印出错误消息。