以前、Javaプログラミングにおいて
陥りやすいミスの第1弾として
「インクリメント演算子と
ディクリメント演算子」のお話をしました。
今回は、陥りやすいミス第2弾。
「文字列の比較」についてお話します。
比較の種類
比較といっても色々な比較があります。
大きい、小さい、同じ、異なる、...
ここでは、
「2つの文字列が
同じ文字列かどうかを比較する」
ということについて考えます。
ではまず、2つの値の比較方法を
見ていきましょう。
比較演算子"=="
Javaにおいて、
2つの値を比較する演算子として
「比較演算子」があります。
さらに比較演算子の中には、
2つの値が同じかどうかを評価する
"=="
というものがあります。
例えば、2つの整数が同じかどうかを
確認するプログラムは以下のようになります。
int b = 3;
if (a == b) {
System.out.println("同じ");
} else {
System.out.println("違う");
}
上記の結果は、「同じ」と表示されます。
比較演算子「==」は、
値が同じであればtrueを返し、
値が異なればfalseを返します。
文字列の比較
では、上記の例にならって
文字列の比較をしてみます。
String str2 = new String("あ");
if (str1 == str2) {
System.out.println("同じ");
} else {
System.out.println("違う");
}
上記の結果は、
「違う」と表示されます。
「え?何で?」と思われる方も
いるのではないでしょうか。
実は、文字列の比較には、
比較演算子「==」は使えないのです。
では文字列を比較するには
どうすればよいのでしょうか。
文字列を比較するには、
equalsというStringクラスに
定義されているメソッドを使います。
String str2 = new String("あ");
if (str1.equals(str2)) {
System.out.println("同じ");
} else {
System.out.println("違う");
}
上記の結果は、「同じ」と表示されます。
equalsメソッドは、
2つの文字列が同じ文字列であれば
trueを返し、
異なる文字列であればfalseを返します。
また、上記のif文は、
と記述しても同じです。
文字列を比較するときの注意点
ここまでの話をまとめると、
・文字列の比較には
比較演算子「==」は使えない
・文字列の比較にはStringクラスの
equalsメソッドを使う
ということになります。
Javaプログラミングにおいて、
文字列は非常に使用頻度が高く、
文字列の比較は良く行います。
文字列は、
数値の比較と同じ方法では
比較できませんので、
注意してください。
■PS
新しいLAブログができました。
【初心者向け】3分でわかるLinuxでできることまとめ 10選
他にも学習に役立つ情報が盛りだくさんです。是非ご覧ください。