【问题标题】:Why Don't These Strings Match? [duplicate]为什么这些字符串不匹配? [复制]
【发布时间】:2014-01-20 01:41:32
【问题描述】:

我得到这样的用户输入:

Scanner keyboard = new Scanner(System.in);
String input = keyboard.nextLine();

当我这样比较时

if(input == "abc"){
  System.out.println("Match!");
}else{
  System.out.println(input + "\nabc");
}

如果我输入“abc”,我会看到

abc
abc

而不是预期的match。怎么回事?

【问题讨论】:

  • 我会说那是个骗子。我正在学习Java;从 JavaScript 迁移——这对我来说是一个新概念。
  • 对不起,我们可以添加dumb-question标签
  • 这个问题不傻。每个新秀都会犯这个错误。不用担心。
  • 补充@Pshemo 所说的,大多数初学者都犯了一个错误,即Java 中的字符串被视为原语。这是由于它们的初始化方式以及操作员如何影响它们。我知道我也曾经去过那里。

标签: java eclipse string if-statement match


【解决方案1】:

您正在比较 String 引用,而不是 String 值。请改用String.equals 方法。

【讨论】:

    【解决方案2】:

    == 正在比较内存位置。你需要使用 input.equals("abc") 来代替。

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 2017-09-27
      • 1970-01-01
      • 2022-03-30
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多