next up previous contents
Next: String クラスのコンストラクタ Up: String Previous: String

コマンド引数の処理

文字列を扱う、最初のプログラムとして、コマンド引数を処理するプログラムを 考えてみましょう。

次のJava プログラムとCプログラムは、コマンド引数を 表示するという、ほとんど同じ働きをします。

    class arg {
       public static void main(String argv[]){
           for ( int i = 0; i < argv.length; i++ ){
               System.out.println("argv[" + i + "] = " + argv[i] );
           }
       }
    }

    #include <stdio.h>
    void main(int argc , char *argv[]){
       int i;
       for ( i = 1; i < argc ; i++ ){
           printf("argv[%d] = %s\n" ,i,argv[i] );
       }
    }

Java とCでのコンパイル・実行の例をあげてみました。 Java のコンパイルでは、どのような名前のクラス・ファイルが出来るかは、 ソース・ファイルの中を見ないと分かりません。また、Java のコンパイルが、 直接実行可能なファイルを生成するわけではなく、Java のプログラムを実行する 為には、Java という名前のインタープリタを起動する必要があることに注意して 下さい。また、引数の処理も、細かいところで違いがあります。

Javaでのコンパイル・実行

     javac arg.java    <---   コマンド javac でコンパイル。
     java arg a b c    <---   コマンド java で実行。
     argv[0] = a       <---   以下、実行結果。
     argv[1] = b
     argv[2] = c

Cでのコンパイル・実行

     cc arg.c          <---   コマンド cc でコンパイル。
     a.out a b c       <---   a.out を実行。
     argv[1] = a       <---   以下、実行結果。
     argv[2] = b
     argv[3] = c

さて、先の二つのプログラムを比較して、Java とCとでの、 引数の処理の違いを見てみましょう。



maruyama@wakhok.ac.jp