welcome: please sign in
location: "コマンドライン引数"の差分
6と7のリビジョン間の差分
2009-10-09 11:56:44時点のリビジョン6
サイズ: 2037
編集者: masahiko
コメント:
2009-10-14 06:01:22時点のリビジョン7
サイズ: 2045
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 65: 行 65:
sunday

コマンドライン引数

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
sunday
a equals b

a equals bは表示されるが、a == bは表示されない。

変数bの値は"sunday"となっていて 変数aの値の"sunday"と同じであるが、 Stringの演算結果は新しいオブジェクトとして作成されるため、2つは異なるオブジェクトである。

そのため

  • a == b はfalse
  • a.equals(b) はtrue

となる。

コマンドライン引数 (最終更新日時 2011-12-06 06:14:16 更新者 masahiko)