通常是一个 if 语句:if(variable==60) {system.out.println("60");}
但我想测试是否variable
与单词完全匹配。
例如,用户输入文本框'hello' 我将如何创建一个if 语句来说明用户是否输入'hello' system.out.println....?
通常是一个 if 语句:if(variable==60) {system.out.println("60");}
但我想测试是否variable
与单词完全匹配。
例如,用户输入文本框'hello' 我将如何创建一个if 语句来说明用户是否输入'hello' system.out.println....?
你需要equals方法:
if ("hello".equals(variable)) {
请注意,还有一个equalsIgnoreCase方法,如果用户可以输入“Hello”而不是“hello”,该方法可能很有用。
首先使用“hello”进行测试通常是一个好主意,这样如果变量为 null,您将不会得到NullPointerException
. 如果变量为空,则 if 返回 false。
许多人通常对此感到困惑,因为他们尝试==
在字符串(即对象)上使用,并收到意想不到的结果。您将不得不使用. 请记住,该方法适用于对象,并且通常适用于原语。if ("hello".equals(var)) {...}
equals
==
这是一个明显的例子:
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 ?真的