Javaちょこっとリファレンス ブログ

Java開発時にぜひご利用ください。

Java 標準API

[Java] 文字列を比較するには「==」ではなく必ず「.equals」を使用しましょう

投稿日:2018年2月15日 更新日:

一般的な言語で文字列の比較をする時には「==」で比較することが多いですが、Javaで文字列どうしを比較するにはこの方法だと正しく比較されません。


以下は「==」で比較するダメな例です。

実行例を分かりやすくするために敢えてnew Stringで生成しています。

文字列どうしを比較する(ダメな例)

(結果)
違う値です

上記の方法で比較すると、値が同じかどうかの比較ではなく、変数の参照先が同じかどうかという比較になるためNGです。
(ただ、文字列の定義は通常「String a = "hoge";」みたいにしますが、このような場合、参照先に同じ値があると参照先を共有するので、多くの場合うまく判定できてしまうのが厄介なのですが・・)


正しく文字列の値を比較するには、.equals を使用します。

文字列どうしを比較する(OKな例)

(結果)
同じ値です

まとめ

  • String型の値を比較する場合は必ず、.equalsメソッドを使用しましょう。

スポンサーリンク

スポンサーリンク

-Java, 標準API
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

[Java] 過去バージョンのJavaが欲しい場合

過去バージョンのJDKやJREが欲しい場合は公式ページからダウンロードできます。 過去バージョンのJ ...

[Java] 文字列を置換する(replace、replaceAll、replaceFirst)

文字列を置換したい場合は、.replace、.replaceAll、.replaceFirst を使 ...

[Java共通部品] 数値先頭ゼロ埋め

数値先頭ゼロ埋めする共通関数サンプルです。 サンプルメソッド 例)指定した桁数になるまで数値ゼロ埋め ...

[Java共通部品] 日付文字列と日付文字列の差分日数を取得する

日付文字列と日付文字列の差分日数を取得する共通関数です。 サンプルメソッド 例)日付文字列と日付文字 ...

[Java] 現在日時のDateオブジェクトを取得する

現在日時のDateオブジェクトを取得するサンプルです。 サンプルソース 例1)現在日時のDateオブ ...