该方法应调用称为“添加书本”的方法,直到文件用完命令为止。我在文件中有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(){

}

07-28 13:45