java - 无法修复 java.lang.ArrayIndexOutOfBoundsException

标签 java arrays

我希望我能够很好地表述我的问题,因为我来自德国...:)

我有一个非常基本的 java 程序,但是当我启动它时,我得到一个 java.lang.ArrayIndexOutOfBoundsException 错误。我搜索了问题,但找不到:

代码.java

public class Code {
    private String code;
    private int nextStep;

    public Code() {
        nextStep = 0;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public void setNextStep(int lastStep) {
        this.nextStep = lastStep;
    }

    public String getActiveStepSeq() {
        String[] activeStepSeq = this.code.split(".");
        return(activeStepSeq[0]);
    }
}

对象.java

public class Being {
    public Code code;
    private String activeStepSeq;
    private String activeAction;

    public String I0;
    public String O0;
    public String S0;

    public Object(Code code) {
        this.code = code;
    }

    public void parseStep() {
        this.activeStepSeq = this.code.getActiveStepSeq();
        this.code.setNextStep(Integer.parseInt(this.activeStepSeq.split("~")[0]));
        this.activeAction = this.activeStepSeq.split("~")[1];
        switch(this.activeAction) {
        case("A"):
            this.O0 = this.I0;
            break;
        }
    }
}

主.java

public class Main {
    public static void main(String[] args) {
        Code c = new Code();
        c.setCode("0~A.");
        Object o = new Object(c);
        o.I0 = "Test";
        o.parseStep();
        System.out.println(o.O0);
    }
}

它应该像这样工作:

  • 用代码“0~A”创建新的代码c。
  • 用代码c创建新对象o
  • 执行“parseStep”得到字符串“0~A”
  • 将 nextStep 设置为 0,将 o.O0 设置为 o.I0

但现在我得到以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at Code.getActiveStepSeq(Code.java:19)
    at Object.parseStep(Object.java:15)
    at Main.main(Main.java:7)

我不明白为什么我不能使用“activeStepSeq[0]”...

我希望你能帮助我,问候马文

最佳答案

请注意,String.split 将正则表达式作为参数,并且 . 在正则表达式中具有特殊含义。

尝试

this.code.split("\\.")

关于java - 无法修复 java.lang.ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27603735/

相关文章:

java - 重载可变参数数组,选择方法

c++ - 使用STL随机化数组条目的简单方法?

python - Hadamard 在数组列表上的效率

Java 图形用户界面 : Instantiating a complex pop-up window's components each time it's opened vs storing them

java - 是否有地方可以存储一些无人可以访问的数据?

java - 如何让异步tcp服务器继续监听 channel 而不是关闭它

java - hibernate 未知服务异常 :Unknown service requested as transaction completed

php - 为什么 PHP 会抛出这个解析错误?

javascript - 数组数据仅每隔两个事件呈现到 HTML 表,否则未定义

javascript - 无法读取未定义多维数组的属性 'push'