ArrayList <string> IndexOutOfBound </string>

时间:2013-04-21 14:53:22

标签: java

我是编程的初学者,我正在制作一个记笔记程序。您可以添加,编辑和删除备注。该程序正在运行,但我想让它创建一个文件,其中保存的注释如下:Header§Note;所以我必须使用String.split() 2次。 注释已成功加载并且拆分也有效,但是当我想设置变量时它不起作用。

我希望你能帮助我。

private void splitFile(String input) {

    ArrayList<String> listOfNotes = new ArrayList<String>(Arrays.asList(input.split(";")));
    String[] notes;

    for(int i=0; i<listOfNotes.size(); i++) {
        notes = listOfNotes.get(i).split("§");
        System.out.println(notes[0] + " " + notes[1]);
        organizers.get(i).setHeader(notes[0]);
        organizers.get(i).setNote(notes[1]);
    }       
}

调用IndexOutOfBoundException时我得到organizers.get(i).setHeader(notes[0]);。这是setHeader方法。

public void setHeader(String s) {
    header = s;
}

编辑:这是组织者类:

public class Organizer {    

private String header = new String("");
private String note = new String("");

public Organizer() {
    this("", "");
}
public Organizer(String h, String n) {
    header = h;
    note = n;
}

public String getHeader() {
    return header;
}

public String getNote() {
    return note;
}

public void setHeader(String s) {
    header = s;
}

public void setNote(String s) {
    note = s;
}

public String toString() {
    return String.format("\n\n%s\n\n%s", header, note);
}

}

这是一个例外:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at com.ThalerPhilipp.Menu.splitFile(Menu.java:135)
at com.ThalerPhilipp.Menu.readNotesFromFile(Menu.java:116)
at com.ThalerPhilipp.Menu.showMenu(Menu.java:17)

at com.ThalerPhilipp.Main.main(Main.java:9)

编辑:我搞定了。 我搞定了。我替换了

organizers.get(i).setHeader(notes[0]);
organizers.get(i).setNote(notes[1]);

organizers.add(new Organizer(notes[0], notes[1]));

感谢您的回答!

2 个答案:

答案 0 :(得分:1)

您尝试访问organizers中的非现有索引。

请记住,您遍历listOfNotes中的所有元素并尝试更新每个元素organizers中的元素。

所以organizers长度必须至少为listOfNotes.size()

答案 1 :(得分:1)

这是因为

organizers.size() != listOfNotes.size()

organizers尚未初始化或其大小与listOfNotes尺寸不匹配