制御の条件内でequalsを使って、等しくないときにtrueにしたい

Strings str1 = "aaa"
Strings str2 = "aaa"

if ( str1 == str2 ){ 
    System.out.println("等しい");
}else{
  System.out.println("等しくない");
}

だと、結果は「等しい」になりますが、javaはstr1とstr2の参照先を同じ位置に指定しているので、正しく比較出来ているわけではありません。 なので、.equalsメソッドをつかいます。

if ( str1.equals(str2) ){ 
    System.out.println("等しい");
}else{
  System.out.println("等しくない");
}

で、内容が比較された上で、「等しい」になります。

equalsメソッドを使った上で、等しくない場合結果をtrueにしたかった場合にはどうすればいいでしょう。


if (!( str1.equals(str2))){ System.out.println("等しくない"); }else{ System.out.println("等しい"); }

とすることで、等しくない場合にtrueにできます。

(str1.equals(str2)はtrueですので、!(str1.equals(str2)はfalseになります。

条件式のときは、 カッコで囲まなくてはいけないので、

if(!( str1.equals(str2))){…}

のように書かなければなりません。