该方法应调用称为“添加书本”的方法,直到文件用完命令为止。我在文件中有25个命令,但是此代码只会运行第一个命令。当我打印出数组列表时,它显示所有25条命令以字符串形式读入。有任何想法吗?
编辑:我删除了半冒号,它仍然给我这个输出。
文件C:\ Users \ Remixt \ workspace \ 2 \ test.csv
新增ID001 Magee
通讯录内容:[ID001 Magee]
if (readerString.toUpperCase().startsWith("FILE")) {
String tempString = readerString.substring(5);
ArrayList<String> tempList = new ArrayList <String>();
String[] taskList = new String[300];
try {
Scanner scanner = new Scanner(new File(tempString));
while(scanner.hasNextLine()){
tempList.add(scanner.nextLine());
}
System.out.println(tempList);
for(int i = 0; i < tempList.size();i++){
taskList[i]= tempList.get(i);
System.out.println(tempList.get(i));
if(taskList[i].toUpperCase().contains("ADD"));{
addBook(taskList[i]);
}
if(tempList.get(i).toUpperCase().contains("REMOVE"));{
delete(taskList[i]);
}
}
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("Cannot find Address file");
start();
}
}
文件C:\ Users \ Remixt \ workspace \ 2 \ test.csv
[添加,Magee,添加,返回,添加,Wailes,添加,Laney,添加,Atkinson,添加,Finney,添加,Stannbauer,添加,Zapka,添加,Yerke,添加,Guillory,添加,Detroye,添加,Paulson,添加,Knellinger,添加,克里斯蒂安森,添加,Vogel,添加,Nevers,添加,Roth,添加,Underwood,添加,Ingersoll,添加,Xavier,添加,特朗普,添加,Queen,添加,Olson,添加,Hatfield,添加,Echols ,添加,杰克逊,打印,搜索,克里斯蒂安森,搜索,伯克,删除,Hubbard,删除,马吉,删除,Wailes,删除,Laney,删除,芬妮,删除,Stannbauer,删除,Zapka,删除,Yerke,删除,市政厅,删除,底特律,删除,保尔森,删除,Knellinger,删除,Vogel,删除,Nevers,删除,Roth,删除,Underwood,删除,Ingersoll,删除,Xavier,删除,特朗普,删除,Queen,删除,Olson,删除,Hatfield,删除,Echols,删除,杰克逊,添加,返回,打印,删除,阿特金森,删除,返回,删除,克里斯蒂安森,添加,再见,打印,]
新增ID001 Magee
通讯录内容:[ID001 Magee]
最佳答案
一个额外的 ;造成这里所有的混乱。
该分号在此处终止该语句,并假定它是从此处开始的新块。
如果你仔细看
if(taskList[i].toUpperCase().contains("ADD")); <----
还有这里
if(tempList.get(i).toUpperCase().contains("REMOVE"));<----
删除那个冒号,如果你看起来像
if(){
}