如何传入参数避免Java程序的java.lang.NumberFormatException错误?
解决RightTriangle代码的NumberFormatException问题
咱们先揪出你遇到错误的根源:日志里明明白白写着java.lang.NumberFormatException: For input string: "console"——你的代码里用Integer.parseInt(args[0])、Integer.parseInt(args[1])、Integer.parseInt(args[2])把命令行传入的三个参数都转成整数,但你传的第三个参数是console,这根本不是数字,转换自然就失败抛出异常了。
这个代码的作用是判断三个数能不能构成直角三角形,所以你得传入三个正整数作为命令行参数才行。在IntelliJ里设置参数的步骤很简单:
- 点击右上角的运行配置下拉框,选择「Edit Configurations」
- 在打开的窗口里找到你的
RightTriangle运行配置,在「Program arguments」输入框中填写三个正整数,比如3 4 5(数字之间用空格分隔) - 保存配置后重新运行代码,就能正常执行了
给你几个测试的例子参考:
- 输入
3 4 5:代码会输出true,因为3²+4²=5²,完全符合直角三角形的条件 - 输入
1 2 3:代码输出false,这三个数不满足勾股定理 - 输入
5 12 13:输出true,这是另一个经典的直角三角形边长组合
另外要注意,代码里还加了c>0 && b>0 && a>0的判断,所以传入的数字必须都是正数——哪怕满足勾股定理,只要传了负数或者0,最终都会输出false。
内容的提问来源于stack exchange,提问作者AnveK
相关产品推荐
相关产品推荐

