【46歳からJavaプログラミング】今日の学び「文字列の比較」==はアカン!

このブログは46歳からプログラミング(Java言語)を学んでいる、ぐーたら女の備忘録です。

アナログ女、プログラミングと無縁だった女は、どこまで成長できるの?

46歳Javaの学び|文字列の比較「==」がダメな理由について

Javaを学びはじめた初心者が必ず落ちる穴・・・

それが文字列の比較

「==」を使ってもコンパイルエラーにならないからタチが悪いんだよ・・

 

参考書などでは

==」は使えないと書かれてけど、そもそもなんで使えないのか!?

その謎が解けたので、備忘録として残します。

「==」はアドレス値を比較する

「==」はアドレス値が同じかどうかを比較するもの。

存在する場所が同じであれば、イコール。

 

例えば

Hero h1 = new Hero(“ぐーたら女”) ;

Hero h2 = h1 ;

 

このように

h1をh2に代入している場合

h1のアドレス値が、h2に代入されるので、h1,h2ともに同じアドレス値となる。

 

このとき

h1 == h2 と言える。

 

そのため

文字列「太郎」という文字、内容を比較したい時は、アドレス値を比較する「==」ではエラーとなる場合が起こり得る。

 

なので

文字列の比較には「==」は使えないとされているんだな~という理解。

文字を比較したいなら「epuals」を必ず使う!

文字を比較したい場合、なぜ「==」じゃダメなのか!?は前項のとおり。

文字列が同等同じ内容か?(アドレス値が違ってもよい)を判定できる「epuals」を使うことに納得ができたのは、次のとおり。

 

例えば

Hero h1 = new Hero (“ぐーたら女”) ;

Hero h2 = new Hero (“ぐーたら女”) ;

 

h1 != h2 となるけど(アドレス値は違う)

h1.equals(h2) といえる(「ぐーたら女」は同じ)

 

文字列、Stiring型(参照型)epuals」を使うのであ~る。

 

 

ここまでブログに残せば、文字列は「==」じゃダメ。「equals」を使うって、脳に叩き込ませられたと信じたい(笑)

分からないことが、分かった!!が成長☆☆☆

 

アナログ、プログラミング初心者でも、46歳という年齢でも、諦めなーい。

どこまで成長できるか!?

どんな未来の自分に出会えるか!?

ということで、今日の学びはここまで。

コメントを残す

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

error: Content is protected !!