1

重複の可能性:
Javaで文字列を比較するにはどうすればよいですか?

私のJavaアプリで。チャレンジを受け入れるには、yを押しますが、プログラムは続行されません。誰かがこれを手伝ってくれますか?

これが私のコードです:

import java.util.Scanner;


    public class MainApp 
    {


        public static void main(String[] args)
        {
            Scanner scanner = new Scanner(System.in);
            System.out.println("Hello User");
            System.out.println("Please Enter your first name");
            String name;
            name =scanner.next();

        System.out.println("\n" + " Hello " + name + "how are you today?");
        String y="";
        y=scanner.next();


        System.out.println("\n" + " Well " +  name + " I am " + y + " Too." +"\n" + " I have a riddle for you " + name + ", wll you Attempt it?" + "\n" + " Type y for yes , or n for no");
        String v;
        v=scanner.next();


        if(v == "y")
            {
            System.out.println("\n" + "How much wood could a wood chuck chuck if a wood chuck could chuck wood? :) " );
            }

        else if(v == "n")
            {
            System.out.println("Ok then " + name + " suit youself, Goodbye! :) ");
            }
        else 
            { 
            System.out.println("Please pick y, or n , and make sure it is in lower case");
            }

        }

    }
4

2 に答える 2

6
if(v == "y")

String.equals()文字列を比較するために使用する必要があります。

したがって、条件のコードは次の行に沿っている必要があります。

if ("y".equals(v)) //checking "y".equals() prevents null access if v is null

説明:
同一性operator==をチェックしています-2つのオペランドがまったく同じオブジェクトであるかどうか。文字列の場合はめったにないので、これはあなたが望むものではありません。

一方、このメソッドは、2つのオブジェクトが互いに等しいかどうequals()かをチェックします。

于 2012-10-04T12:09:02.077 に答える
2

比較される2つのオブジェクトが同じオブジェクト参照を持つ(同じオブジェクトになる)可能性は低いため、演算子ではString.equalsなくを使用してください。==String

if ("y".equals(v)) {
...

以上

if ("y".equalsIgnoreCase(v)) {
...
于 2012-10-04T12:09:34.793 に答える