2016-04-09 17 views
0

現在、選択したWordをHashMapからscreenに出力しようとしています。出力が最初に正しくなりますが、最初の値を与えるたびに、間違っている?HashMapとPrint Valuesを使って繰り返し印刷する方法

public void searchIndex() throws FileNotFoundException, IOException { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Please Enter a word to search"); 
     String entry = sc.nextLine().toLowerCase(); 

     String key = null; 
     String value = null; 
     Set<Integer> indices = null; 
     for (String search : index.keySet()) { 
      for (WordEntry values : index.values()) { 

       key = search; 
       value = values.getDefinition(); 
       indices = values.getIndices(); 
      } 

     } 
     System.out.println("Word " + key + " And " + value + indices); 
     System.out.println("Do you wish to continue searching,'Yes' if so"); 
     String answer = sc.nextLine(); 
     if (answer.equalsIgnoreCase("Yes")) { 
      searchIndex(); 

出力:

黄色

を検索する単語を入力してくださいWordの黄色と色

あなたは 'はい'、検索を継続しますかはいそう

場合

単語を入力してくださいearchが

オープン

Wordの黄色と色

あなたは 'はい' そう

+1

サンプル入力と出力、および予想される出力を共有する – Hackerdarshi

+2

あなたは何が起こるのかは分かりませんが、ユーザーからの入力を絶対に使用していないようです。 –

+0

申し訳ありませんが、私はハッシュマップで単語を検索しようとしています。最初に値を与えたら、検索を続けると別の単語が選択されますが、最初の値 –

答えて

0

場合は、このブロックでは、検索を継続しますか:

for (String search : index.keySet()) { 
    for (WordEntry values : index.values()) { 
     key = search; 
     value = values.getDefinition(); 
     indices = values.getIndices(); 
    } 
} 

あなたが値を設定していますkey,value,indices無条件でである。

は、これはあなたの入力が何であれ、それは常に設定することを意味します:indexの最後のキーに

  • keyを。
  • value最後の値の定義はindexです。
  • indicesと最後の値の最後のインデックスはindexです。

そして、私は黄色がindexの最後の項目だと思います。したがって、あなたは上記の出力を得る。

入力に基づいて、いくつかの条件に従ってkey,valueindicesの値を設定する必要があると思います。

関連する問題