【问题标题】:what arguments should i pass in this program so as to avoid java.lang error?我应该在这个程序中传递什么参数以避免 java.lang 错误?
【发布时间】:2020-12-18 15:14:39
【问题描述】:

这是我试图运行的程序:

public class RightTriangle {
    public static void main(String args[]) {

        int a = Integer.*parseInt*(args[0]); 
        int b = Integer.*parseInt*(args[1]);
        int c = Integer.*parseInt*(args[2]);
        System.out.println((c*c==a*a+b*b||b*b==a*a + c*c ||a*a == b*b + c*c)&&(c>0 && b>0 && a>0));
     }
}

在 IntelliJ 上运行此程序时出现此错误:--

"C:\Program Files\Java\jdk-14.0.2\bin\java.exe" "-javaagent:C:\Users\anuavi\IntelliJ IDEA Community Edition 2020.2.1\lib\idea_rt.jar=58608:C:\Users\anuavi\IntelliJ IDEA Community Edition 2020.2.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\anuavi\IdeaProjects\java1\out\production\java1 RightTriangle console
Exception in thread "main" java.lang.NumberFormatException: For input string: "console"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at RightTriangle.main(RightTriangle.java:7)

进程以退出代码 1 结束

我不明白为什么当我从合法来源复制代码时显示错误??

【问题讨论】:

  • 异常原因很清楚:Exception in thread "main" java.lang.NumberFormatException: For input string: "console"。传递有效的int-representations 作为输入,异常应该会消失。
  • This 描述了如何从命令行传入正确参数的示例。在您的情况下,您想传递数字而不是单词;具体来说,整数。
  • 好吧...但是相当初学者..你能告诉我什么是有效的 int 表示吗?
  • @AnveK 我推荐一个关于 Java 的基础教程,例如this one by Oracle
  • @Gryphon...我尝试使用数字..我收到错误“索引 1 长度超出长度 1 的范围”

标签: java indexing arguments syntax-error lang


【解决方案1】:

你当前传递了哪些参数?您的应用程序正在尝试将“控制台”字符串转换为数字,因此出现错误:

java.lang.NumberFormatException: For input string: "console"

【讨论】:

  • 所以任何数字都可以吗?比如 1,2,67...?
  • 是的,只是一个数字 - 确保不要输入任何其他字符。
猜你喜欢
  • 1970-01-01
  • 2014-07-14
  • 2018-09-08
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
相关资源
最近更新 更多