Я пытаюсь прочитать файл и принимать команды в зависимости от того, что говорит каждая строка файла. Файл выглядит следующим образом:
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
Я знаю, что проблема не в печати. Проблема заключается в ** выше. Любые предложения о том, как я могу это исправить?
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");
}
}
}
}
Попробуй это
if(temp.startsWith("Add")){
String word = sc.next().toLowerCase().replaceFirst("All", "");
String def = sc.nextLine().toLowerCase().replaceFirst("All", "");;
Add(word, def);
}