== コマンドライン引数 == mainメソッドは次のように記述した。 {{{ public class Sample { public static void main(String[] args) { ... } } }}} 引数argsはString(文字列)型の配列である。 この引数を使ってコマンドラインで指定された文字列を受け取ることができる。 {{{ > java Sample abc defg 56 }}} により実行された場合 . args[0] の値は "abc" . args[1] の値は "defg" . args[2] の値は "56" となる。もちろん両側の " を除いた文字列が実際の値である。 args[0]から始まることと、数字の並びであっても文字列として扱われることに注意。 引数に空白などの特殊文字を含めたいときは " ではさんで指定する。 {{{ > java Sample "Hello World" 2000 }}} このとき . args[0] の値は "Hello World" . args[1] の値は "2000" である。 引数が何個与えられたかを調べるには 配列args の大きさを調べればよい。 args.length ---- '''例''' {{{ public class Test1 { public static void main(String[] args) { String a; String b; a = "sunday"; b = ""; for(int i = 0; i < args.length; i++) { b = b + args[i]; } System.out.println( b ); if(a == b) System.out.println("a == b"); if(a.equals(b)) System.out.println("a equals b"); } } }}} 与えられた引数をつないでできる文字列が sunday と等しいか調べるプログラムである。 <
>次のようなパラメータを与えて実行すると {{{ > java Test1 sun day a equals b }}} a equals bは表示されるが、a == bは表示されない。 変数bの値は"sunday"となっていて 変数aの値の"sunday"と同じであるが、 Stringの演算結果は新しいオブジェクトとして作成されるため、2つは異なるオブジェクトである。 そのため . a == b はfalse . a.equals(b) はtrue となる。