-1

我正在尝试制作一个程序,在其中输入形状的名称,它会告诉我它有多少面。我似乎无法让它工作。谁能解释如何做到这一点?

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.");
    }


  }

}
4

3 回答 3

0

对象与equalsJava 中的比较:

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

只有原始类型(int、long、double 等)的值可以与==. 如果您将对象与==您比较对象标识,而不是值。

于 2013-09-05T16:54:10.383 回答
0

用于shape.equals("triangle")如果

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

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

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

于 2013-09-05T16:54:53.717 回答
0

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

例如:

if(shape.equals("hexagon"))

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

于 2013-09-05T16:53:59.560 回答