0

通常是一个 if 语句:if(variable==60) {system.out.println("60");}

但我想测试是否variable与单词完全匹配。

例如,用户输入文本框'hello' 我将如何创建一个if 语句来说明用户是否输入'hello' system.out.println....?

4

3 回答 3

7

你需要equals方法:

if ("hello".equals(variable)) {

请注意,还有一个equalsIgnoreCase方法,如果用户可以输入“Hello”而不是“hello”,该方法可能很有用。

首先使用“hello”进行测试通常是一个好主意,这样如果变量为 null,您将不会得到NullPointerException. 如果变量为空,则 if 返回 false。

于 2012-09-17T19:13:43.237 回答
3

许多人通常对此感到困惑,因为他们尝试==在字符串(即对象)上使用,并收到意想不到的结果。您将不得不使用. 请记住,该方法适用于对象,并且通常适用于原语。if ("hello".equals(var)) {...}equals==

于 2012-09-17T19:15:41.037 回答
0

这是一个明显的例子:

    String pool1 = "funny";
    String pool2 = "funny";
    String not_pooled = new String("funny");
    System.out.println("pool1 equals pool2 ? "+(pool1==pool2)); //Equal because they point to same pooled instance
    System.out.println("pool1 equals not_pooled ? "+(pool1==not_pooled)); //Not equal because 'not_pooled' not pooled.
    System.out.println("pool1 equals not_pooled ? " +(pool1.equals(not_pooled))); //Equal because the contents of the object is checked and not the reference

输出:

pool1 等于 pool2 吗?真的

pool1 等于 not_pooled ?错误的

pool1 等于 not_pooled ?真的

于 2012-09-17T19:35:49.423 回答