尝试使用“if”和用户输入的字符串

时间:2013-09-05 16:51:31

标签: java

我正在尝试创建一个程序,我在其中输入一个形状的名称,它告诉我它有多少边。我似乎无法让它发挥作用。任何人都可以解释如何做到这一点吗?

import java.util.Scanner;

public class Shapes {

  public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);
    String shape;

    System.out.print("Enter shape: ");
    shape = reader.next();

    if (shape == "hexagon") {
        System.out.println("A hexagon has 6 sides.");
    }

    if (shape == "decagon"); {
        System.out.println("A decagon has 10 sides.");
    }


  }

}

3 个答案:

答案 0 :(得分:0)

在Java中,您希望将.equals()与字符串一起使用。

例如:

if(shape.equals("hexagon"))

由于==运算符询问String对象shape是否与“hexagon”完全相同(它不是 - hexagon是常量而shape是对象)。

答案 1 :(得分:0)

将对象与Java中的equals进行比较:

if (shape.equals("hexagon")) {
    System.out.println("A hexagon has 6 sides.");
}

只能将原始类型(int,long,double等)的值与==进行比较。如果您将对象与==进行比较,则需要比较object identity,而不是值。

答案 2 :(得分:0)

如果

,请使用shape.equals("triangle")

运算符==,测试两个对象引用变量是否引用对象的完全相同的实例。

方法.equals(),测试两个对象是否相互比较 - 但它们不必是同一对象的完全相同的实例。

您可以将==与原始类型一起使用。对于String,使用equals()