Stringはint,doubleなどの基本変数と異なり、クラスの扱いをするので、比較を行う時に特別な方法が必要。
/** コマンドライン引数のテスト */ public class ArgTest { public static void main( String[] args ) { System.out.println ( args[0] ); System.out.println ( args[0].length() ); if (args[0]=="1") System.out.println(" == で一致"); if (args[0].equals("1")) System.out.println("equalsで一致"); } }
上記プログラムを確認しなさい。
/** コマンドライン引数のテスト */ public class ArgTest2 { public static void main( String[] args ) { System.out.println ( args[0]+" "+args[1] ); System.out.println ( args.length ); if (args[0]==args[1]) System.out.println(" == で一致"); if (args[0].equals(args[1])) System.out.println("equalsで一致"); } }
/** String の比較 */ public class StrTest { public static void main( String[] args ) { String a = "abc"; String b = "abc"; if (a==b) System.out.println(" == で一致"); if (■■equals■■) System.out.println("equalsで一致"); } }
/** String の比較 */ public class StrTest2 { public static void main( String[] args ) { String a = "abc"; String b = a; if (a==b) System.out.println(" == で一致"); if (■■equals■■) System.out.println("equalsで一致"); } }
プログラム | 引数 | == で一致 | equalsで一致 |
ArgTest | 1 | - | equalsで一致 |
1以外 | - | - | |
ArgTest2 | 1 1 , a a 等 | - | equalsで一致 |
1 2 , a b 等 | - | - | |
StrTest | - | - | equalsで一致 |
StrTest2 | - | == で一致 | equalsで一致 |