Javaプログラミング  Javaプログラミング ~陥りやすいミス②~

Javaプログラミング  Javaプログラミング ~陥りやすいミス②~

以前、Javaプログラミングにおいて
陥りやすいミスの第1弾として

「インクリメント演算子と
 ディクリメント演算子」のお話をしました。

今回は、陥りやすいミス第2弾。

「文字列の比較」についてお話します。

比較の種類

比較といっても色々な比較があります。

大きい、小さい、同じ、異なる、…

ここでは、

「2つの文字列が
 同じ文字列かどうかを比較する」

ということについて考えます。

ではまず、2つの値の比較方法を
見ていきましょう。

比較演算子”==”

Javaにおいて、
2つの値を比較する演算子として
「比較演算子」があります。

さらに比較演算子の中には、
2つの値が同じかどうかを評価する

“==”

というものがあります。

例えば、2つの整数が同じかどうかを
確認するプログラムは以下のようになります。

int a = 3;
int b = 3;

if (a == b) {
System.out.println(“同じ”);
} else {
System.out.println(“違う”);
}

上記の結果は、「同じ」と表示されます。

比較演算子「==」は、
値が同じであればtrueを返し、
値が異なればfalseを返します。

文字列の比較

では、上記の例にならって
文字列の比較をしてみます。

String str1 = new String(“あ”);
String str2 = new String(“あ”);

if (str1 == str2) {
System.out.println(“同じ”);
} else {
System.out.println(“違う”);
}

上記の結果は、
「違う」と表示されます。

「え?何で?」と思われる方も
いるのではないでしょうか。

実は、文字列の比較には、
比較演算子「==」は使えないのです。

では文字列を比較するには
どうすればよいのでしょうか。

文字列を比較するには、
equalsというStringクラスに
定義されているメソッドを使います。

String str1 = new String(“あ”);
String str2 = new String(“あ”);

if (str1.equals(str2)) {
System.out.println(“同じ”);
} else {
System.out.println(“違う”);
}

上記の結果は、「同じ」と表示されます。

equalsメソッドは、
2つの文字列が同じ文字列であれば
trueを返し、
異なる文字列であればfalseを返します。

また、上記のif文は、

if (str2.equals(str1)) {

と記述しても同じです。

文字列を比較するときの注意点

ここまでの話をまとめると、

・文字列の比較には
 比較演算子「==」は使えない

・文字列の比較にはStringクラスの
equalsメソッドを使う

ということになります。

kohsaka

Javaプログラミングにおいて、
文字列は非常に使用頻度が高く、
文字列の比較は良く行います。

文字列は、
数値の比較と同じ方法では
比較できませんので、
注意してください。

■PS
新しいLAブログができました。
【初心者向け】3分でわかるLinuxでできることまとめ 10選
他にも学習に役立つ情報が盛りだくさんです。是非ご覧ください。