当前位置: 首页 > 知识库问答 >
问题:

String[]args参数:java。lang.ArrayIndexOutOfBoundsException

公良凯
2023-03-14

嗨,我是一个java学习者,并试图使这个程序添加两个数字。

异常在线程"main"java.lang.ArrayIndexOutOfBounds异常: 0在addnumber.main(addnumber.java:16)Java结果: 1

public class addnumber{
   public static void main(String[] args) {
        String x,y;
        int a,b,c;
        x=args[0];
        y=args[1];
        a=Integer.parseInt(x);
        b=Integer.parseInt(y);
        c=a+b;
        System.out.println(c);
   }
}

我知道我可以使用Scanner类或string builder类,但是这段代码有什么问题吗?

共有3个答案

吴同
2023-03-14

很好的假设,问题出在String[]args中,这个问题导致找出这个参数作为String的初始值是多少?或者换句话说,IDE如何调用main方法?如果在Netbeans或Eclipse中运行此代码,默认情况下将打印此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:

因为默认情况下,IDE调用方法的字符串数组长度为0:

TheNameOfClass.main(new String[0]) // if you run it in some IDEs
>java Addnumber  // cmd with no args?

在您的情况下,异常将发生在行x=args[0];中,因为您调用并希望使用数组中的某些项超出数组长度的范围或格栅。

现在,您可以将其配置为eclipse中的示例,以根据需要传递一些Strings值,或者您需要在“命令提示符”中编译和运行java类手册,并传递一些Strings值:

>javac Addnumber.java // compile it 
>java Addnumber 1 77  // run it and passs some values to array in main method
宰父夕
2023-03-14

如果您使用eclipse或任何其他工作工具运行。然后必须设置运行配置参数。

假设您在命令行中运行此代码,那么您必须使用下面的命令运行此代码

java addnumber 2 4
锺离声
2023-03-14

如果你使用args数组,你必须从外部给程序一些参数,例如从控制台。

因此,打开控制台并转到。java文件是可编辑的,并使用

javac Addnumber.java

现在,您应该会在那里看到一个. class文件。

也不愿写这样的电话:

java Addnumber 5 9 

你的论点是5和9。

还要用大写写班级名

 类似资料:
  • 问题内容: 我目前正在以指导学生编程的方式教学生。我告诉他们,他们可以在Oracle代码约定中找到大多数约定。 在我的上一教程中,一个学生问: 要么 是按惯例写的还是有区别的。我以前从未看过第一个版本,因此,我非常确定第二个版本是一个约定。但是我没有消息来源。 您能给我一个明确说明惯例中的哪一个的来源(最好是来自oracle,例如我上面链接的页面)吗? 两个表达式的等价 我知道这两个表达式是等效的

  • 问题内容: 我刚刚开始用Java编写程序。以下Java代码是什么意思? What is String[] args? When would you use these args? 源代码和/或示例优先于抽象解释 问题答案: 在Java中,包含提供的命令行参数作为对象数组。 换句话说,如果你运行你的程序作为然后将包含。 如果要输出的内容,可以像这样遍历它们…

  • 问题内容: 之间有什么区别: 和 我不相信,但是我想知道。 问题答案: 从语义上讲,它们是相同的。但是,我建议在声明数组时使用后一种语法()。以前的语法主要用于与C语法兼容。 因为总体上来说,它是Java中对象的类型,所以它更加一致,而且很清楚不要将其拆分。

  • 问题内容: 我必须为作业分配一个API,而我的讲师对API中的一种方法(基于Javadoc)使用了一种我不熟悉的符号。 “ …”是什么意思?稍后看来,我将需要使用单个字符串实际参数以及多个字符串实际参数来调用相同的方法… Java没有可选参数(据我所知),所以我在这里有点困惑… 问题答案: 这就是所谓的varargs;http://docs.oracle.com/javase/6/docs/tec

  • 为什么Java只允许main方法采用形式的参数?即字符串数组 为什么Java不允许int或double数组 或 为什么它不允许单个字符串或int或float而不是字符串数组呢?类似于: 或

  • 问题内容: 由于它可能是Java语言中使用最广泛的方法之一,因此为什么它必须接受字符串数组并且没有它就无法工作?例如,我可以一直住: 过度 除了能够接受命令行参数之外,还有其他更高的目的吗,尤其是因为绝大多数Java程序都是GUI驱动的,并且不需要通过命令行接收args? 问题答案: 甚至GUI驱动的Java应用程序也将从某些主要方法开始。“更高的目的”从来没有接受命令行参数。 目的只是接受参数。