java - 启动 java 程序时出现 ArrayIndexOutOfBoundsException

标签 java command-line-arguments indexoutofboundsexception netbeans-8

我目前正在做一项作业,但在运行我的代码时似乎出现了问题。

public class caesar {
    public static void main(String args[]) {
        String inputString = args[0];
        char inputArray[] = inputString.toCharArray();
        int shiftLength = Integer.parseInt(args[1]);
        System.out.println("Input: " + inputString);
        String outputString = "";

这是我收到的错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at caesar.main(caesar.java:3)

最佳答案

您没有将命令行参数传递给您的程序,也没有检查它们是否已传递。要传递参数,请像这样启动您的程序

java caesar arg0 arg1

例如:

java caesar somestring 10

要在 NetBeans 8.0.2 IDE 中执行此操作,请打开“项目属性”,选择“运行”项,然后在此处指定参数:

program arguments in NetBeans

您可能还想提前检查传递的参数数量以输出友好的错误消息。例如:

public static void main(String args[]) {
    if(args.length != 2) {
        System.err.println("Usage: java caesar <inputString> <shift>");
        return;
    }
    ... // the rest of your code
}

关于java - 启动 java 程序时出现 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042638/

相关文章:

php - 如何将文件作为参数传递给 php exec?

shell - Zsh 上一个命令输出的特殊变量

python - list.append(obj) 导致回溯 - 这是为什么?

JavaFX 高度调整问题

java - 将 SQL 列存储到 java 数组中

c++ - 如何在 C++ 程序中添加命令行参数?

java - 将 arraylist 的值插入 mysql 表

java - 无法在 MF8 中省略 json 响应中的空值 - 使用 jackson 注释

java - 有没有一种简单的方法来删除 Spring 项目未使用的依赖项

java - 阿特金筛法返回数组...索引无效 - Java