Java 如何确保字符串输入不是数字?
我正在使用do..while循环,在我的while have中Java 如何确保字符串输入不是数字?,java,Java,我正在使用do..while循环,在我的while have中 while (intOne != intTwo && colorOne != 0 && colorTwo != 0); 问题是我得到了以下错误。“不兼容的操作数类型String和int” 我知道这是因为我的colorOne和colorTwo是字符串,我想说它们不等于int 我认为这和演员和其他东西有关,但我是新手,需要帮助 您应该从字符串中解析int: Integer.parseInt( color
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)
也永远不会是真正有趣的方法。有趣的是,对于这样一个简单的任务,人们根据问题中的那句话给出转换答案:)