welcome: please sign in
location: "コマンドライン引数"の差分
7と8のリビジョン間の差分
2009-10-14 06:01:22時点のリビジョン7
サイズ: 2045
編集者: masahiko
コメント:
2011-12-06 06:14:16時点のリビジョン8
サイズ: 1463
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 44: 行 44:
  String a;
  String b;
  
  a = "sunday";
  b = "";
  System.out.println( args.length );
行 51: 行 47:
   b = b + args[i];    System.out.println( args[i] );
行 53: 行 49:
  System.out.println( b );
  if(a == b)
   System.out.println("a == b");
  if(a.equals(b))
   System.out.println("a equals b");
行 61: 行 52:
与えられた引数をつないでできる文字列が sunday と等しいか調べるプログラムである。
<<BR>>次のようなパラメータを与えて実行すると
与えられた引数の個数と内容を表示するプログラムである。

実行例
行 64: 行 56:
> java Test1 sun day
sunday
a equals b
> java Test1 "Hello World" 2000
2
Hello World
2000
行 68: 行 61:
a equals bは表示されるが、a == bは表示されない。

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

そのため
 . a == b はfalse
 . a.equals(b) はtrue
となる。

コマンドライン引数

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)
        {
                System.out.println( args.length );
                for(int i = 0; i < args.length; i++)
                {
                        System.out.println( args[i] );
                }
        }
}

与えられた引数の個数と内容を表示するプログラムである。

実行例

> java Test1  "Hello World" 2000
2
Hello World
2000

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