0
import java.util.*;
public class Name2
{
    public static void main (String[] args)
    {
        String name;
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter your name: ");
        name = scan.nextLine();
        // asks for user input

        if(name.equals(Person)) 
        // this is my problem. The .equals() method doesn't work

        System.out.println("Hey buddy!");
        else
        System.out.println("This is just an example");
    }
} 

これは私が運が悪かったことです。メソッドは.equals()機能しません。

4

5 に答える 5

2

「」を忘れたと思いますif(name.equals(Person))

そうかもしれないif(name.equals("Person"))

if( name.equalsIgnoreCase("Person"))小文字と大文字を受け入れる必要がある場合は、試すことができ ます。

于 2013-10-22T15:47:18.583 に答える
0

正しく受け取ったコメントに基づいて、最初に「人」が実際に何であるかを定義する必要があります。

Person が入力の文字列表現である場合、次の方法でコードを編集する必要があります。

    String name;
    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter your name: ");
    name = scan.nextLine();
    // asks for user input

    // Wrap Person in double quotes
    if (name.equals("Person"))
        System.out.println("Hey buddy!");
    else
        System.out.println("This is just an example");

出力は次のようになります。

Please enter your name: 
Person
Hey buddy!

Person がユーザー定義オブジェクトの場合、まず equals メソッドをオーバーライドする Person オブジェクトを定義する必要があります。

人物オブジェクト

public class Person
{
    private String name;

    public Person(String name)
    {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Person other = (Person) obj;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
}

次に、Person オブジェクトを使用して、メイン メソッドを介してストリームに入力しているものを比較します。

public static void main(String[] args) {

    // Construct and initialise Person
    Person person = new Person("Person");

    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter your name: ");
    Person name = new Person(scan.nextLine());
    // asks for user input

    // Use the person object for name instead of String
    if (name.equals(person))
        System.out.println("Hey buddy!");
    else
        System.out.println("This is just an example");

}

目的の出力が得られるはずです。

Please enter your name: 
Person
Hey buddy!
于 2015-01-27T08:56:39.757 に答える