• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IF文と文字列の組み合わせについて)

IF文と文字列の組み合わせについて

このQ&Aのポイント
  • IF文と文字列の組み合わせについて悩んでいます。現在、InputStreamReader、BufferedReaderクラスを使用して応答処理を行い、返事に応じて処理を分岐させようとしています。しかし、どの入力を行っても最終的にelse文に進んでしまいます。どうすれば正しく動作するようになるでしょうか?
  • ソースコードでは、if文を使って返答に応じた分岐処理を行っています。しかし、どの返答を入力しても最終的にelse文に進んでしまいます。文字列とif文を組み合わせる方法が間違っているのでしょうか?解決策を教えてください。
  • IF文と文字列の組み合わせについて悩んでいます。現在、InputStreamReader、BufferedReaderクラスを使用して応答処理を行い、返事に応じて処理を分岐させようとしています。しかし、どの入力を行っても最終的にelse文に進んでしまいます。どうすれば正しく動作するようになるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

Stringはクラスオブジェクトなので、==で比較してはいけません。 値が等しいことをチェックするのなら、equals()メソッドを使います。 String a = new String("ABC"); String b = new String("ABC"); このとき、a==b はfalseになりますが、a.equals(b) はtrueになります。

newjava
質問者

お礼

回答ありがとうございます。 早速試してみたのですが、どうもうまくいかないようです。 以下のようなエラーが出ております。 C:\javasrc>javac test1.java test1.java:17: 型 boolean と java.lang.String は比較できません。 if(str2.equals("はい")=="はい"){ ^ test1.java:19: 型 boolean と java.lang.String は比較できません。 }else if(str2.equals("いいえ")=="いいえ" ){ ^ エラー 2 個 C:\javasrc>javac test1.java test1.java:17: 型 java.lang.String と boolean は比較できません。 if(str2.toString()==str2.equals("はい")) { ^ test1.java:19: 型 java.lang.String と boolean は比較できません。 }else if(str2.toString()==str2.equals(" いいえ")){ ^ エラー 2 個

newjava
質問者

補足

すみません、 if(str2.equals("はい")==true) というふうに変換したら無事問題解決しました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう