通常、if ステートメント:if(variable==60) {system.out.println("60");}
variable
しかし、単語と完全に一致するかどうかをテストしたいと思います。
たとえば、ユーザーがテキスト ボックス「hello」に入力すると、ユーザーが「hello」system.out.println.... と入力したかどうかを示す if ステートメントを作成するにはどうすればよいでしょうか。
通常、if ステートメント:if(variable==60) {system.out.println("60");}
variable
しかし、単語と完全に一致するかどうかをテストしたいと思います。
たとえば、ユーザーがテキスト ボックス「hello」に入力すると、ユーザーが「hello」system.out.println.... と入力したかどうかを示す if ステートメントを作成するにはどうすればよいでしょうか。
equalsメソッドが必要です:
if ("hello".equals(variable)) {
equalsIgnoreCaseメソッドもあることに注意してください。これは、ユーザーが「hello」の代わりに「Hello」と入力する可能性がある場合に役立ちます。
variable が null の場合にNullPointerException
. variable が null の場合、if は false を返します。
Many people usually get confused with this because they try to use ==
on strings (which are objects), and receive unexpected results. You will have to use if ("hello".equals(var)) {...}
. Bear in mind that the equals
method is for objects, and ==
is generally for primitives.
明確な例を次に示します。
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と同じですか?true
pool1はnot_pooledに等しい?false
pool1はnot_pooledに等しい?true