0

私はプログラミングの初心者で、メモを取るプログラムに取り組んでいます。メモを追加、編集、削除できます。プログラムは機能していましたが、メモが次のように保存されるファイルを作成するようにしたかったので、 2回Header§Note;使用する必要があります。String.split()メモは正常にロードされ、分割も機能しますが、変数を設定したい場合は機能しません。

あなたが私を助けてくれることを願っています。

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)

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]));

回答ありがとうございます。

4

2 に答える 2

1

に存在しないインデックスにアクセスしようとしていますorganizers

すべての要素を繰り返し処理し、それぞれlistOfNotesの要素を更新しようとすることに注意してくださいorganizers

したがって、organizers長さは少なくとも である必要がありますlistOfNotes.size()

于 2013-04-21T14:57:28.860 に答える
1

それの訳は

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

つまり、初期化されていないか、サイズがサイズorganizersと一致しませんlistOfNotes

于 2013-04-21T14:59:53.537 に答える