2017-01-06 13 views
0

"ora"と入力すると2つの文字列で "orange"と "orange juice"を出力するように2つの出力が必要です。どうしますか?処理/ Java:1つのarraylistからの2つの出力

class searcher { 
     ArrayList<String> toBecompared= new ArrayList<String>(Arrays.asList("orange", "orange juice", "apples", "cola", "soda")); 
     void search() { 
     String[] words = {text}; 
     // text is a user input 
     // for loop test for if the "list" contains "text" (user input) 
     for (int i = 0; i < toBecompared.size(); i++) { 
      for (int w = 0; w < text.length(); w++) { 
      try { 
       if (toBecompared.get(i).contains(words[w])) { 
       println(words[w] +" " + toBecompared.get(i)); 
       } 
      } 
      catch(Exception a) { 
      } 
      } 
     } 
     } 
    } 
+0

は、スタックオーバーフローへようこそ!あなたは最初に[ツアー]を受け、良い質問をして[mcve]を作成することができます。そうすれば、私たちがあなたを助けやすくなります。 – Katie

答えて

0

私はそれを行う方法を見つけましたが、イムはわからない、それが最善の方法である場合:P

class searcher { 
    ArrayList<String> toBecompared= new ArrayList<String>(Arrays.asList("orange", "orange_juice", "apples", "cola", "soda")); 
    String comparing ="orange orange_juice apples cola soda"; 
    String[] splited = comparing.split("\\s+"); 
    String compared1; 
    String compared2; 

    boolean True = false; 

    void search() { 
    String[] words = {text}; // text is a user input 
    for (int i = 0; i < toBecompared.size(); i++) { 
     for (int w = 0; w < text.length(); w++) { 
     try { 
      if (toBecompared.get(i).contains(words[w])) { 
      //println(words[w] +" " + toBecompared.get(i)); 

      if (True == true) { 
       compared2 = splited[i]; 
       True = false; 
      } else { 
       compared1 = splited[i]; 
       True = true; 
      } 
      } 
      println(compared1); 
      println(" "); 
      println(compared2); 
     } 

     catch(Exception a) { 
     } 
     } 
    } 
    } 
} 
+0

私は 'List 'を作成し、あなたの入力をループして、それがリストに追加したらそれを追加することを提案します。ループの最後には、あなたが望むものをリストで行うことができます。あなたは2つのものだけが必要な場合は、最初の2つを印刷します(もちろん、少なくとも2つを確認してください)。また、 'boolean True = false;'は私の脳を傷つけます:-) – Stik

+0

@Lampenは、自動完成のような機能を実装しようとしているような感じです。もしそうなら、あなたは[Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance)を見てください。 –

+0

Reasの愛については、空の例外ブロックを使用しないでください。少なくとも、そこに 'a.printStackTrace()'を呼び出す必要があります。 –

関連する問題