java - 字符串比较未正确返回?

标签 java string variables

<分区>

import java.util.Scanner;

public class Poop {
  public static void main (String args[]){
    Scanner input = new Scanner(System.in);
    String Gender;
    System.out.println("Are you a boy or a girl?");
    Gender = input.nextLine();

    if(Gender == "boy"){
      System.out.println("You are a boy.");
    }
    if(Gender == "girl"){
      System.out.println("You are a girl.");
    }
  }
}

我想知道为什么这个程序不起作用。在 Eclipse 中,它说没有错误,但是当我运行它并输入男孩或女孩时,什么也没有发生,我不明白为什么。

也请不要取笑我正在用字符串变量测试自己的程序。

最佳答案

如果你正在比较字符串,不要使用==,而是使用equals():

if(Gender.equals( "boy" ) ){
  System.out.println("You are cool.");
}
if(Gender.equals( "girl" ) ){
  System.out.println("You are cute.");
}

在 Java 中 == 比较对象标识而不是内容!因此,在您的情况下,您将读入的对象与其他两个对象进行比较。这总是会失败。

另一方面,equals() 比较两个对象的内容,因此在这里会成功。

关于java - 字符串比较未正确返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899180/

相关文章:

java - 在 Android 中使用接口(interface)回调

java - Android:打开/读取或复制本地网络中的文件

java - 难以理解如何在 SSL 通信中使用证书

perl - 为什么我没有收到 Perl 的警告?

java - 在 Java 中验证字符串

java - 如何使用从父类(super class)到子类的变量?

java - 用java读取具有多个字段的文件

javascript - 检查链接是否包含 javascript

javascript - 从字符串中删除图像元素

c++ - 在 C++ 类中使用字符串输出错误