Java中If - Else语句中的字符串

时间:2014-02-09 15:55:14

标签: java if-statement syntax statements

我正在编写一个程序,它接受用户输入,并根据他们的答案给他们一个不同的答案。如何使用用户输入的字符串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语句的语法。

4 个答案:

答案 0 :(得分:1)

Java中的==运算符检查两个引用相同。另一方面,equals(Object)检查两个引用相等

在您的情况下,无法保证从用户输入的字符串Asparagus和代码中的硬编码文字实际上将是同一个对象,因此{{1} }是错的,你应该使用==

equals(Object)

答案 1 :(得分:0)

equals

更改此plant == "Asparagus"

plant.equals("Asparagus")

将字符串与equals();

进行比较

答案 2 :(得分:0)

Strings是Java中的对象。很容易将它误认为是一个原语,因为它是“默认”java.lang类的一部分。要比较字符串(与所有对象一样),您需要使用.equals方法。

在这种情况下,相等运算符的作用是比较String变量plant的地址和它为该行"Asparagus"分配的新String对象。当然,由于它们是不同的对象,它们永远不会是平等的。

答案 3 :(得分:0)

“==” - >只是比较指针(对象引用)

“s1.equals(s2)” - >是内容的比较