
こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしているuhablog(ウハブログ)です。
今回の記事ではif文でString型の文字列を比較する方法について解説します。
結論から言うとString型の文字列を==で比較することはできません。
String型はequalsメソッドを持っているのでこのメソッドを活用して比較をします。
実際のコードで確認
まずはif文の条件式で==を使って比較してみましょう。
str1とstr2にABCという同じ値を格納しています。
二つの値をそれぞれ出力した後、==で比較して同じ値なら同じ値と出力し、違う値なら違う値と出力します。
class Equals {
public static void main(String[] args) {
String str1 = "ABC";
String str2 = new String("ABC");
System.out.println("str1 = " + str1);
System.out.println("str2 = " + str2);
if(str1 == str2) {
System.out.println("二つの文字列は同じ値です。");
}else {
System.out.println("二つの文字列は違う値です。");
}
}
}
実行結果は以下の通りです。printlnで二つの値を出力してみるとABCと出力されます。
しかしif文の条件式で二つの値を比較するとfalseになりelse内の処理が実行されます。
理由としては「String型は参照型のデータだから」となります。
ややこしくなるのでここでは説明を割愛します。
str1 = ABC
str2 = ABC
二つの文字列は違う値です。
結論でも書きましたがString型の値を比較する際には==ではなくequalsメソッドを使います。
コードで確認してみます。
class Equals {
public static void main(String[] args) {
String str1 = "ABC";
String str2 = new String("ABC");
System.out.println("str1 = " + str1);
System.out.println("str2 = " + str2);
if(str1.equals(str2)) {
System.out.println("二つの文字列は同じ値です。");
}else {
System.out.println("二つの文字列は違う値です。");
}
}
}
実行結果は以下の通りになります。
ちゃんと文字列の比較がされ、同じ値と判定されました。よってif文内の処理が実行されます。
str1 = ABC
str2 = ABC
二つの文字列は同じ値です。
文字列の比較は==ではなくequalsメソッドを使う!
独学が辛いあなたへ
プログラミング学習にはエラーやわからないところというのはつきものです。
人に聞けば5分でわかることも、自分一人で悩んでいると1日数日時間を費やしてしまうこともあります。
そんな時にプログラミングスクールであれば、質問できる環境を手に入れることができます。
Freeksはいつでもどこでも豊富なカリキュラムを学ぶことができる月額制のプログラミングスクールです。
多くのプログラミングスクールでは数ヶ月で数十万円というような形式で運営されていますが、Freeksでは月額約10,000円でJavaやそれ以外の言語を学ぶことができます。
現役エンジニアに質問できる環境が手に入り、一緒に学習する仲間もできるのでおすすめです。
質問できる環境を手に入れて、プログラミング学習を挫折することなく続けていきたいという方は無料カウンセリングに参加してみてください。
【関連記事】Freeks評判、口コミ
他のプログラミングスクール
月額10,780円のサブスク型プログラミングスクール!
>>Freeks公式サイト
20代におすすめ!無料で未経験からプログラマー就職まで実現できる!
>>ProgrammerCollege公式サイト
パーソナルメンターがつく充実したサポート
>>DMM WEBCAMP公式サイト
おすすめのプログラミングスクールについて詳しく知りたいという方はこちらの記事も参考にしてみてください。