我是编程的新手,正在做笔记编程。您可以添加,编辑,删除注释。该程序正在运行,但我想使其成为一个文件,其中保存注释的方式如下: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)
在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]));
感谢您的回答!
最佳答案
您尝试访问organizers
中不存在的索引。
请记住,您要遍历listOfNotes
中的所有元素,并尝试为每个元素更新organizers
中的元素。
因此,organizers
长度必须至少等于listOfNotes.size()
。