如何读取和比较Java中的字符串?

How to read and compare strings in Java?

我一直在尝试将一个字符串与另一个字符串进行比较,或者将一个字符串与一个语句进行比较,但我找不到错误所在。 我尝试使用 == 但它没有用,然后我改为 .equals()

static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
  System.out.print("En este programa calcularemos el area de una figura.\n" + 
              "Ingresa a continuacion que figura calcularemos.");
    String triangulo = "triangulo";
    String figura = scan.nextLine();
    if (figura.equals(triangulo)){
        System.out.print("Ingrese base y altura del triangulo.\n");
        double base = scan.nextDouble();
        double altura = scan.nextDouble();
        System.out.print("La altura es " + (base*altura)/2);
    }
}

这里的想法是询问用户要计算其面积的形状的名称,如果它等于我要命名的不同形状之一,那么它将根据形状使用公式。

您必须区分比较引用和值。使用“==”意味着您比较的是引用而不是值。 link 此处将描述一般比较变量的 java 方法是什么,以及在哪些情况下必须使用它们。

http://www.leepoint.net/data/expressions/22compareobjects.html

我希望这能回答你的问题。

将此行:String figura = scan.nextLine();替换为 String figura = scan.next();,您的程序将运行:见下图

另见 here Scanner.next() 和 Scanner.nextLine()

之间的区别

当我尝试这个程序并输入 triangulo 作为输入时,它似乎对我有用,因为它打印了 Ingrese base y altura del triangulo.。然后输入 sides 的值并且它起作用了。我认为代码是正确的。