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で一致 |