単語をテキストファイルに保存する必要がありますか(永続化する必要がありますか)、またはそれらをメモリに保存できますか?彼らは、テキストファイルに書き込む必要がある場合は 、これを試してみてください。私はその翻訳から単語を分離するためのスペースを使用しています
// Create a file
File file = new File("file.txt");
// Initialize a print writer to print to the file
PrintWriter pw = new PrintWriter(file);
Scanner keyboard = new Scanner(System.in);
// Populate
boolean stop = false;
do {
String word;
String translation;
System.out.print("Enter a word: ");
word = keyboard.nextLine().trim() + " ";
if (!word.equals("quit ")) {
pw.print(word);
System.out.print("Enter its translation: ");
translation = keyboard.nextLine().trim();
pw.println(translation);
} else {
stop = true;
}
} while (!stop);
// Close the print writer and write to the file
pw.close();
// Initialize a scanner to read the file
Scanner fileReader = new Scanner(file);
// Initialize a hash table to store the values from the file
Hashtable<String, String> words = new Hashtable<String, String>();
// Add the information from the file to the hash table
while (fileReader.hasNextLine()) {
String line = fileReader.nextLine();
String[] array = line.split(" ");
words.put(array[0], array[1]);
}
// Print the results
System.out.println("Results: ");
words.forEach((k, v) -> System.out.println(k + " " + v));
fileReader.close();
keyboard.close();
注意を。カンマやセミコロンを簡単に使うことができます。 line.split(" ")
をline.split(< your separating character here>)
に置き換え、末尾を連結してword = keyboard.nextLine().trim()
の末尾に連結します。
あなたが情報を保存する必要があり、ちょうど、ユーザーの入力を収集する必要がない場合は、それも簡単です:
Scanner keyboard = new Scanner(System.in);
// Initialize a hash table to store the values from the user
Hashtable<String, String> words = new Hashtable<String, String>();
// Get the input from the user
boolean stop = false;
do {
String word;
String translation;
System.out.print("Enter a word: ");
word = keyboard.nextLine().trim();
if (!word.equals("quit")) {
System.out.print("Enter its translation: ");
translation = keyboard.nextLine().trim();
words.put(word, translation);
} else {
stop = true;
}
} while (!stop);
// Print the results
System.out.println("Results: ");
words.forEach((k, v) -> System.out.println(k + " " + v));
keyboard.close();
本当にありがとう、役に立ったただの迅速なフォローアップの質問。読書セクションを構成した方法は、一度に1組の単語しか保存できないのですか、それともすべて保存できますか?これは本当に私のプロジェクトには適用されませんが、私は知りたいだけです。再度、感謝します!! :D –
もちろん、問題ありません。読み込みセクションはファイル全体を一度に1行ずつ読み込み、各行から 'word、translation'ペアを抽出し、そのペアを' wordMap'に格納します。したがって、ループの反復ごとに1つのペアしか格納されませんが、ファイル内のすべての行にループします。それはあなたの質問に答えますか? – Matt
これは一度に1つのペアを格納し、whileループの終わりには、すべてのペアを同時に格納するでしょうか?お待ちいただいてありがとうございます。私はこれでかなり新しいです。 –