ひよっこSEの備忘録

20卒の未経験エンジニアの日々の備忘録です。

文字列比較 ".equals"と".matches"の違い

 

.equals

String型の文字列など、参照型を比較する際に用いられるのが.equalsです。

文字の大文字・小文字は区別されます。

(区別されない書き方 .equalsIgnoreCase)

一致するとtrue、不一致でfalseを返します。

(int型の整数などを比較する際は「==」の演算子が用いられます。)

参照型で==を用いてしまうと、値の比較がされず参照先の比較をしてしまい、意図した結果が得られません。

f:id:nekomuranekomix:20200502123539p:plain

 結果は、一段目は等しくなく二段目が等しと表示されます。

(一段目は参照先の比較、二段目は文字列の比較となるので)

 

ここまでは処理結果がtrueの時でしたが、falseを出す方法もあります。

その場合は論理演算子 ! を使用します。(!は論理否定と呼ばれます)

論理演算子は、後ろがboolean型の時に使えます。

trueの時にfalse、falseの時にtrueを表示します。

f:id:nekomuranekomix:20200502124838p:plain

結果は等しくないですと表示されます。

 

複数判定させたい場合、論理演算子&&を使用します。

.matches

一致するとtrue、不一致でfalseを返します。指定した文字列と正規表現を比較する際に使われます。

true時にfalseを出す方法は.equalsと同じです。 

 

 

正規表現とは、文字列のパターンを表す表現方法です。

例えば、A1からA9を表現したい場合には、A[1-9]と表すことができます。