- 締切済み
文字入力チェック
お世話になります、JAVA言語について勉強中の佐藤と申します。 今回は文字列のチェックを行いたいと思い、ロジックを組んでみました。 String sEnzanshi; if(args.length==3){ }else{ System.out.println("入力パラメータがおかしいですよ"); return; } sEnzanshi= args[2]; System.out.print(sEnzanshi); //第3パラメータチェック if(sEnzanshi == "add"){ }else if(sEnzanshi == "min"){ }else if(sEnzanshi == "mul"){ }else if(sEnzanshi == "div"){ }else{ System.out.println("第3パラメータが不正です"); return; } args[2]の内容が"add"、"min"、"mul"、"div"であれば次処理へ、それ以外はエラーとするようなロジックを組んだつもりです。 ですが、結果は"add"と入力してもエラーで返ってきてしまいます。 文字列チェックの前にSystem.out.printでargs[2]の内容が正しいか確認しましたが、addと正しく出力されました。 原因が分かる方はいらっしゃいますでしょうか? 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- PED02744
- ベストアンサー率40% (157/390)
== は オブジェクトの比較になるので、同一オブジェクトじゃないと不一致になります。 sEnzanshiはString[]の3番目のStringの事で、 固定文字列として用意された"add"とは別オブジェクトなので一致しません。 文字列の内容比較はequals() もしくは 英大文字小文字を意識しないのなら equalsIgnoreCase()メソッドを使います。
- himajin100000
- ベストアンサー率54% (1660/3060)
文字列の比較って ==じゃなくて equalsだったような。未検証。
お礼
文字列の比較は==では出来ないのですね。 知りませんでした・・・。 equalsを使用したところ、思うような処理結果が得られました。 ありがとうございました。
お礼
早々のご解答をありがとうございます。 なるほど。==はオブジェクトの比較に使用するのですね。 早速、equals()を使わせて頂きましたところ、上手く処理する事ができました。 心から感謝致します。