-5

私はJavaが初めてで、「Java」のスペルを尋ねるJavaアプリを作成しようとしています。スペルが正しい場合は「はい」と入力されますが、「いいえ」と入力されます。何が間違っていますか:

package quiz;
import java.util.Scanner;
public class quiz {
    public static void main(String[] args) {
        Scanner kirill = new Scanner(System.in);
        System.out.println(kirill.next());
        String kirill2 = "Java";
        if (kirill.equals(kirill2)){
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        System.out.println(kirill);
        kirill.close();
    }

}

実行コード: Java

ジャワ

番号

java.util.Scanner[delimiters=\p{javaWhitespace}+][position=4][match valid=true][need input=false][source closed=false][skiped=false][group separator=\,] [小数点記号=.][正のプレフィックス=][負のプレフィックス=\Q-\E][正のサフィックス=][負のサフィックス=][NaN文字列=\Q?\E][無限大文字列=\Q?\E ]

4

5 に答える 5

0

したがって、ここでは、より簡単な方法は次のとおりです。

package quiz;
import java.util.Scanner;

 public static void main(String[] args) {

 String userInput;
 String word = "Java":

 Scanner in1 = new Scanner(System.in);
 userInput = in1.next();
 System.out.println( userInput );

 if (word.equals(userInput)) {
     System.out.println("Yes!");
     }else{
         System.out.println("No.");
         }

System.out.println( userInput );
userInput.close();

}

于 2013-08-21T02:16:10.310 に答える
0

内部のコードを簡単に見てみましょうmain():

Scanner kirill = new Scanner(System.in);

スキャナーを作成し、それを変数に割り当てます。

System.out.println(kirill.next());

ユーザーが入力したものを出力しますが、何にも割り当てません

String kirill2 = "Java";

ただの文字列変数...OK。

if (input.equals(kirill2)){

スキャナーが何らかのテキストに等しい場合は、続行します。ちょっと待って、今言ったことわかる?Scanner と String の比較。これではうまくいきません。ロボットにコップ一杯の水と「水」と書かれた紙を渡して、同じかどうか尋ねます。明らかにそうではありません。ユーザーの入力ではなく、設定値を別の設定値と比較しています。以下は正しいでしょう:

package quiz;
import java.util.Scanner;
public class quiz {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in); //creates a scanner
        String text = "Java";                  //creates the text to be compared
        String input = scan.nextLine();        //read some arbitrary text the user types
        if (input.equals(text)){               //checks if user's input is equal to text
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        scan.close();                         //closes the Scanner
    }
}

必須ではありませんが、変数の動作や表現にちなんだ名前を付けることをお勧めします。そうしないと、すぐに混乱してしまいます...

于 2013-08-21T01:35:47.670 に答える