2017-11-03 5 views
0

私は、ユーザーからの入力が必要なコード(名前)を作成しています。私は名前を名前に比べて二度も出力しないように名前を比較するものを入れたいと思います(もし誰かがJohn Smithを二度入力した場合、「その名前はすでに使用されています。私の先生は、メソッドequalsまたはcompareToを使用するように指示しましたが、どうすればよいか分かりません。私のコードのいくつかは以下の通りです:すでに印刷されているものと何かを比較するにはどうすればよいですか?

明らか
while (name <= 32) 
    { 
     System.out.println ("Type your first name."); 
     String firstName=input.nextLine(); 

     System.out.println(); 

     System.out.println ("Now type your last name."); 
     String lastName=input.nextLine(); 

     if ((firstName + lastName).equals(firstName + lastName)) 
     { 
      System.out.println ("That is not your name. Please type in your real name."); 
     } 
     else 
     { 
      System.out.println(); 
      System.out.println (firstName + " " + lastName); 
     } 

私は(equalsメソッドを使用して)が動作しませんでした何。誰も助けることができる方法を知っていますか?あなたのタスクでは

+4

既に入力された名前を配列、arraylistのようなものに格納するか、おそらくさらに優れたものをセットにします。 – luk2302

答えて

0

、すべての最初は、主要なアイデアを考える:

  1. を名前を入力します。
  2. あなたはお互いを比較したいですか?

まあ、最初のタスクが容易であり、あなたがそれを作った:)

2番目のタスクはそれにいくつかの明確化が必要です。ほとんど試してみると、以前の名前のみを確認できます。新しい名前と以前の名前とを比較するには、どういうわけかそれらを保存する必要があります。あなたの目標を達成するためにはすべてのコマンドを伝えなければなりません(タスクのアルゴリズムを作成する)。

だから、あなたの仕事のためのアルゴリズムや手順は次のとおりです。

  1. は、あなたのデータ(名前)を格納する場所を、決定し| Javaには、単純な配列やリスト、セットなどの高度な構造のようなデータ・ストレージがあります。
  2. 空の記憶域を作成します。空のストレージを準備する必要があります。ちょうどそれを初期化する
  3. 名前を入力するいくつかのループを作成|終了条件(32回))
  4. ループには、名前を入力してください
  5. チェックしてください|だから、前に私が言ったように。最初はあなたのストレージが空であり、あなたのストレージ名を入力する必要があるたびに(別のループで)、すべての名前(存在する場合)と比較して、突然同じ名前もう一度やり直して4番目のステップに進んでください。それ以外の場合、名前があなたのストレージに存在しない場合は、それを置いて、将来別の複製をチェックしてください!
  6. ループが終了するまで作業してください!

それです!あなたのための宿題を少しチュートリアル) あなたの宿題は上記のアルゴリズムを実装することです。 私は今、あなたの先生があなたにアレイについて教えてくれたと思いますか?

データ構造についてわからない場合は、5番目のステップでは名前を確認するのに狂った方法もあります。いくつかのString変数を作成することができます。ここでは、 "John Smith" Allien Wood "のようなやり方で名前を格納します。次に、新しい名前を入力してその部分文字列をチェックするたびに、この可能な巨大な文字列を調べなければなりません。トリッキー・フレイキー!

0

私はあなたの質問を理解している場合、これはあなたのための解決策になるはずです。

ArrayList<String> names = new ArrayList<>(); 
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
    boolean access; 

    while (true) { 
     access = true; 
     System.out.println("Type your first name."); 
     String firstName = input.readLine(); 

     //System.out.println(); 

     System.out.println("Now type your last name."); 
     String lastName = input.readLine(); 

     String fullName = firstName + " " + lastName; 
     if(names.size()==0) { 
      names.add(fullName); 
      continue; 
     } 
     for (String name : names) { 
      if (name.equals(fullName)) { 
       System.out.println("That is not your name. Please type in your real name."); 
       access = false; 
       break; 
      } 

     } 
     if(access) { 
      names.add(fullName); 
      System.out.println(); 
      System.out.println(firstName + " " + lastName); 
     } 
    } 
関連する問題