Java 如何确保字符串输入不是数字?

Java 如何确保字符串输入不是数字?,java,Java,我正在使用do..while循环,在我的while have中 while (intOne != intTwo && colorOne != 0 && colorTwo != 0); 问题是我得到了以下错误。“不兼容的操作数类型String和int” 我知道这是因为我的colorOne和colorTwo是字符串,我想说它们不等于int 我认为这和演员和其他东西有关,但我是新手,需要帮助 您应该从字符串中解析int: Integer.parseInt( color

我正在使用do..while循环,在我的while have中

while (intOne != intTwo && colorOne != 0 && colorTwo != 0);
问题是我得到了以下错误。“不兼容的操作数类型String和int”

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


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

您应该从字符串中解析int:

Integer.parseInt( colorOne )
因此,您的代码如下所示:

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

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

Integer.parseInt(colorOne)

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

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

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

这样,代码就不会抛出可能的字符串到整数转换异常。请注意,
==
=运算符一般不用于字符串比较,它们比较Java中的引用等式。

为什么在
while
语句末尾有分号?如果是忙等待循环,至少在正文中使用
Thread.sleep
。字符串
colorOne
colorTwo
可以(根据设计)永远不等于整数。。即使
colorOne=“2”
(colorOne==2)
也永远不会是真正有趣的方法。有趣的是,对于这样一个简单的任务,人们根据问题中的那句话给出转换答案:)