[英]How do I compare a variable that asks for user input to the user's input?
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()
方法不起作用。
问题不是.equals()
不起作用。 问题是, Person
是没有定义。
如果您想将其作为文字字符串,则需要在其周围加上双引号: "Person"
。
我认为您在if(name.equals(Person))
上忘记了“”
那可能是if(name.equals("Person"))
如果需要接受任何小写和大写字母,则可以尝试if( name.equalsIgnoreCase("Person"))
。
您需要创建一个String变量来比较Person。 它应该看起来像:String Person =“ Dave”;
如果名称不匹配,您可能还想添加else语句来说些其他话。
根据您正确收到的评论,您首先需要定义“人”的真正含义。
如果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!
如果将其与字符串进行比较, equals()将在您的情况下工作。
使用if(name.equals("Person"))
代替if(name.equals(Person))
PS:我怀疑您使用的第二个表达式是否还会被编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.