我正在编写一个程序,它接受用户输入,并根据他们的答案给他们一个不同的答案。如何使用用户输入的字符串if - else语句?
到目前为止,我有这个:
import java.io.*;
import static java.lang.System.*;
import java.util.Scanner;
class t1_lesson07_template{
public static void main (String str[]) throws IOException {
Scanner scan = new Scanner(System.in);
System.out.print("Hello, welcome to the companion planting guide. ");
System.out.print("Lets get started! To begin, just input the desired plant in the box to learn what plants to grow with it!");
String plant = scan.nextLine();
if (plant == "Asparagus") {
System.out.print("Tomatoes, parsley, and basil.");
}
}
}
我想知道在这种情况下if语句的语法。
答案 0 :(得分:1)
Java中的==
运算符检查两个引用相同。另一方面,equals(Object)
检查两个引用相等。
在您的情况下,无法保证从用户输入的字符串Asparagus
和代码中的硬编码文字实际上将是同一个对象,因此{{1} }是错的,你应该使用==
:
equals(Object)
答案 1 :(得分:0)
答案 2 :(得分:0)
Strings是Java中的对象。很容易将它误认为是一个原语,因为它是“默认”java.lang
类的一部分。要比较字符串(与所有对象一样),您需要使用.equals
方法。
在这种情况下,相等运算符的作用是比较String变量plant
的地址和它为该行"Asparagus"
分配的新String对象。当然,由于它们是不同的对象,它们永远不会是平等的。
答案 3 :(得分:0)
“==” - >只是比较指针(对象引用)
“s1.equals(s2)” - >是内容的比较