Команды из файла

1

Я пытаюсь прочитать файл и принимать команды в зависимости от того, что говорит каждая строка файла. Файл выглядит следующим образом:

Add saw cutting tool
Add yen a monetary unit
Add pan a dish
List     


public void Load(String fileName) throws FileNotFoundException{
    BufferedReader r = new BufferedReader (new FileReader(fileName));
    Scanner sc = new Scanner(r);
    while(sc.hasNextLine()){
        while(sc.hasNext()){
            String temp =sc.nextLine();

            **if(temp.startsWith("Add")){
                String word = sc.next().toLowerCase();
                String def = sc.nextLine().toLowerCase();
                Add(word, def);**           

            }else if(temp.equals("List")){
                List();
            }
        }
    }
}

Это печать:

Add saw cutting tool Add yen a monetary unit Add pan a dish

Я хочу, чтобы он распечатывался так:

saw cutting tool
yen a monetary unit
pan a dish

Я знаю, что проблема не в печати. Проблема заключается в ** выше. Любые предложения о том, как я могу это исправить?

Теги:
file
java.util.scanner
bufferedreader

2 ответа

0
Лучший ответ
Do this way: It might solve your problem:

public void Load(String fileName) throws FileNotFoundException{
        BufferedReader r = new BufferedReader (new FileReader(fileName));
        Scanner sc = new Scanner(r);
        while(sc.hasNextLine()){
            while(sc.hasNext()){
                String temp =sc.nextLine();

                if(temp.startsWith("Add")){
                    temp = temp.replaceAll("Add ", "");
                    String[] word = temp.split("\\s", 2);
                    Add(word[0], word[1]);       

                }else if(temp.equals("List")){
                    System.out.println("List");
                }
            }
        }
    }
  • 0
    Спасибо. это сработало
  • 0
    Пожалуйста.... :-)
0

Попробуй это

if(temp.startsWith("Add")){
    String word = sc.next().toLowerCase().replaceFirst("All", "");
    String def = sc.nextLine().toLowerCase().replaceFirst("All", "");;
    Add(word, def);
}
  • 0
    Это не работает Я получил те же результаты

Ещё вопросы

Сообщество Overcoder
Наверх
Меню