为什么我的for循环只完成一次任务?

时间:2015-10-11 10:32:56

标签: java file loops

此方法应调用名为“Add Book”的方法,直到文件用完命令。我在文件中有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,添加,保尔森,添加,Knellinger,添加,Christianson,添加,Vogel,添加,讷韦尔,添加,罗斯,添加,安德伍德,添加,英格索尔,添加,泽维尔,添加,特朗普,添加,女王,添加,奥尔森,添加,哈特菲尔德,添加,Echols ,添加,杰克逊,打印,搜索,克里斯蒂安森,搜索,伯克,删除,哈伯德,删除,马吉,删除,Wailes,删除,兰尼,删除,芬尼,删除,斯坦鲍尔,删除,Zapka,删除,Yerke,删除, Guillory,删除,Detroye,删除,保尔森,删除,Knellinger,删除,Vogel,删除,讷韦斯,删除,罗斯,删除,安德伍德,删除,英格索尔,删除,泽维尔,删除,特朗普,删除,女王,删除,奥尔森,删除,哈特菲尔德,删除,Echols,删除,杰克逊,添加,返回,打印,删除,阿特金森,删除,返回,删除,克里斯蒂安森,添加,再见,打印,]

添加了ID001 Magee

地址簿内容:[ID001 Magee]

1 个答案:

答案 0 :(得分:2)

额外的;引起所有混乱。

那个分号终止了那里的陈述,并假设它是一个新的块,从那里开始。

如果你仔细观察

    if(taskList[i].toUpperCase().contains("ADD")); <----

也在这里

 if(tempList.get(i).toUpperCase().contains("REMOVE"));<----

删除该冒号,你的if应该是

if(){

}