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()
方法不起作用。
答案 0 :(得分:4)
问题不在于.equals()
不起作用。问题是Person
未定义。
如果您将其视为文字字符串,则需要在其周围加上双引号:"Person"
。
答案 1 :(得分:2)
我想你忘记了if(name.equals(Person))
可能是if(name.equals("Person"))
如果您需要接受小写和大写,请尝试if( name.equalsIgnoreCase("Person"))
。
答案 2 :(得分:1)
你需要创建一个String变量来比较Person。 它应该看起来像: String Person =“Dave”;
如果名称不匹配,您可能还想要使用else语句来说出其他内容。
答案 3 :(得分: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对象通过main方法比较您在流中输入的内容。
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!
答案 4 :(得分:0)
equals()将适用于您的情况。
使用if(name.equals("Person"))
代替if(name.equals(Person))
PS:我怀疑你使用的第二个表达式是否会被编译。
答案 5 :(得分:-1)
您可以参考此链接,他们提供有关equals方法的示例示例
http://geeklabs.co.in/corejava/EqualsOprtr.html