此方法应调用名为“Add Book”的方法,直到文件用完命令。我在文件中有25个命令,但是这个代码只运行第一个命令。当我打印出数组列表时,它显示所有25个以字符串形式读入的命令。有什么想法吗?
编辑:我删除了半冒号,它仍然给了我这个输出。
文件C:\ Users \ Remixt \ workspace \ 2 \ test.csv
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,添加,保尔森,添加,Knellinger,添加,Christianson,添加,Vogel,添加,讷韦尔,添加,罗斯,添加,安德伍德,添加,英格索尔,添加,泽维尔,添加,特朗普,添加,女王,添加,奥尔森,添加,哈特菲尔德,添加,Echols ,添加,杰克逊,打印,搜索,克里斯蒂安森,搜索,伯克,删除,哈伯德,删除,马吉,删除,Wailes,删除,兰尼,删除,芬尼,删除,斯坦鲍尔,删除,Zapka,删除,Yerke,删除, Guillory,删除,Detroye,删除,保尔森,删除,Knellinger,删除,Vogel,删除,讷韦斯,删除,罗斯,删除,安德伍德,删除,英格索尔,删除,泽维尔,删除,特朗普,删除,女王,删除,奥尔森,删除,哈特菲尔德,删除,Echols,删除,杰克逊,添加,返回,打印,删除,阿特金森,删除,返回,删除,克里斯蒂安森,添加,再见,打印,]
地址簿内容:[ID001 Magee]
答案 0 :(得分:2)
额外的;引起所有混乱。
那个分号终止了那里的陈述,并假设它是一个新的块,从那里开始。
如果你仔细观察
if(taskList[i].toUpperCase().contains("ADD")); <----
也在这里
if(tempList.get(i).toUpperCase().contains("REMOVE"));<----
删除该冒号,你的if应该是
if(){
}