开发者社区> 问答> 正文

如何解决java.lang.NumberFormatException:对于输入字符串:“ TooL

我正在尝试创建一组代码,可以用计算机猜数字。问题部分和调试控制台部分都很清楚,我能够运行它,直到尝试通过集成终端输入值。

我已将Input.nextLine()返回的字符串值转换为int值,尽管这似乎没有效果,但我也从在集成终端而不是调试控制台上运行代码切换了。另外,我尝试了catch(NumberFormatException)语句,但由于Visual Studio Code无法识别catch或NumberFormatException而失败。

while ( win == false) { int CorrectNumber = 70; int g = (int)( Math.random() * 101 ); System.out.print( "The Number I Guess Is:" + g);

String TooHigh = "TooHigh"; //type TooHigh if the number computer guessed is too high

TooHigh = input.nextLine(); int h1 = Integer.parseInt(TooHigh);

String TooLow = "TooLow"; //type TooLow if the number computer guessed is too low

TooLow = input.nextLine(); int l1 = Integer.parseInt(TooLow);

if ( g == h1 ) //too high { int y = (int)( Math.random() * ( g - 70 ) ); System.out.print( "Another Number I Guessed is: " + y ); } else if ( g == l1 ) //too low { int z = (int)( Math.random() * ( 70 - g ) ); System.out.print( "Another Number I Guessed is: " + z ); } else if ( g == 70 ) //computer wins { win = true; } 当我输入单词告诉计算机时,它猜出的数字是否太大或太小,我希望它能给我另一个数字。但是,我收到以下消息:

Exception in thread "main" java.lang.NumberFormatException: For input string: "TooLow" 

at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:652) at java.base/java.lang.Integer.parseInt(Integer.java:770) at RevGuess.main(RevGuess.java:23)

展开
收起
小六码奴 2019-10-14 19:19:37 9832 0
2 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

    您可以获取下一次输入的字符,建议在程序里面增加获取字符串长度的语言,然后用长度和数值比较就能解决您的问题了

    2019-10-15 14:34:24
    赞同 展开评论 打赏
  • 你为什么要从字符串中得到一个int值,因为它告诉你猜测值太低了?可以将其视为字符串,然后可以将字符串与.equals进行比较,以查看字符串的值是否相同。如果是,你告诉程序它太低或太高。

    2019-10-14 19:22:46
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载