Javaでは数値のように、比較演算子で同じ文字列であるかどうかを比較してはいけません。
(理由は文字列比較参照)
文字列比較プログラム
文字列の比較
String型の変数内の文字列と引数の文字列を比較
String型の変数.equals(“比較したい文字列”)
文字列と引数の文字列を直接比較
”文字列”.equals(“比較したい文字列”)
記述例
String型のstr変数内の文字列と引数の文字列を比較して条件として利用
String str = “文字列”;
if(str.equals(“比較したい文字列”)){
if(str.equals(“比較したい文字列”)){
文字列同士を比較して条件として利用
if(“文字列”.equals(“比較したい文字列”)){
文字列同士を比較してboolean型の変数に代入
boolean b = “文字列”.equals(“比較したい文字列”);
NG記述
エラーにはならないが、インスタンスの比較となる為、下記のような記述はNGです。
String str = “文字列”;
if(str == “比較したい文字列”){
if(str == “比較したい文字列”){
サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class SampleCode02{ public static void main(String[] args){ String str = "777"; if(str.equals(args[0])){ System.out.println("指定された文字列が入力されました。"); } //文字列を直接比較も可能 if("abc".equals("def")){ System.out.println("比較した文字列は同一です。"); } System.out.println("abc".equals("def")); } } |
C:\work>javac SampleCode02.java
C:\work>java SampleCode02 777
指定された文字列が入力されました。
false
関連記事
第4章 インスタンス変数と参照値(※参照値の補足参照)