-3

さて、他の質問はかなり古く、私はそれがもっと多くの人々がそれにつまずいてそれを読んだり答えたりすることはないだろうと思ったので、ここに行きます:ヘッダーを考えると:

public boolean equals(Name otherName)

2つの名前オブジェクトが等しいかどうかを比較することになっています。私が今持っているのは:

public boolean equals(Name otherName){
        return (otherName.equalsIgnoreCase(this));
    }

前のスレッドで誰かが提案したように。

ただし、シンボルが見つからないというエラーが発生します。

これが私のコードの残りの部分です。そのだらしなさなどを許してください。今夜はまったくうまくコーディングできていません。

Name.java:

public class Name{
    private String firstName;
    private String middleName;
    private String lastName;

    public Name (String first, String middle, String last){
        firstName = first;
        middleName = middle;
        lastName = last;
    }

    public String getFirst(){
    return firstName;
    }

    public String getMiddle(){
        return middleName;
    }

    public String getLast(){
        return lastName;
    }

    public String firstMiddleLast(){
        return (firstName + middleName + lastName);
    }

    public String lastFirstMiddle(){
        return (lastName + ", " + middleName + firstName);      
    }

    public boolean equals(Name otherName){
        return (otherName.equalsIgnoreCase(this));
    }

    public String initials(){
        String initials = firstName.substring(0,1) + middleName.substring(0,1) + lastName.substring(0,1);
        initials.toUpperCase();
        return initials; 
    }

    public int length(){
        int sum = firstName.length() + middleName.length() + lastName.length();
        return sum;
    }
}

TestingNames.java:

import java.util.Scanner;

public class TestNames{
    public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the first name, middle name, and last name in that order for the first name object.");
    Name name = new Name(scan.next(), scan.next(), scan.next());
    System.out.println("Enter the second name, middle name, and last name in that order for the first name object.");
    Name name2 = new Name(scan.next(), scan.next(), scan.next());   

    System.out.println("Printing name in the order first name, middle name, last name");
    System.out.println(name.firstMiddleLast());
    System.out.println(name2.firstMiddleLast());

    System.out.println("Printing name in the order last name, first name, middle name");
    System.out.println(name.lastFirstMiddle());
    System.out.println(name2.lastFirstMiddle());

    System.out.println("Printing initials");
    System.out.println(name.initials());
    System.out.println(name2.initials());

    System.out.println("Printing name length");
    System.out.println(name.length());
    System.out.println(name2.length());

    System.out.println("Are these names equal?");
    System.out.println(name.equals(name2));



    }
}
4

2 に答える 2

0

次の場所で使用している間equalsIgnoreCase、クラスにメソッドが実装されていません。Name

public boolean equals(Name otherName){
    return (otherName.equalsIgnoreCase(this));
}

そのため、エラーが発生する可能性があります。あなたが試すことができます:

 public boolean equals(Name otherName){
    if(firstName.equalsIgnoreCase(otherName.firstName) && middleName.equalsIgnoreCase(otherName.middleName) && lastName.equalsIgnoreCase(otherName.lastName))
        return true;
    else 
        return false;
}
于 2012-12-11T03:56:15.717 に答える
0
public boolean equals(Name otherName){
            return (otherName.getFirst().equalsIgnoreCase(firstName));
        }

文字列ではなくオブジェクトを比較しています..。

于 2012-12-11T04:47:00.550 に答える