文字列

文字列はオブジェクト

javaの基本データ型には文字列がありませんでした。文字列は基本データでなく、オブジェクトなのです。しかし基本データのようにもあつかえます。次のように使います。

String s = "abc";

そうです。int などの基本データ型と全く同様に使えます。

String s,t;      // 宣言します
s = "abc";       // 代入します
t = "def";
s = s + t;       // 連結します
System.out.println( s );    // 表示します。abcdef となります。

文字列の配列

配列にもできます。

String[] u = {"abc","def","ghi"};
または
String w[] = {"abc","def","ghi"};

そうです。プログラムの中にいつもあった次のフレーズにこの配列があります。

       public static void main( String[] args ) {

次のように書いても同じです。

       public static void main( String args[] ) {

args は変数名なので何を使ってもいいのです。人によっては 別の名前を使います。。

       public static void main( String[] argv ) {

コマンドライン引数

コマンドライン引数とは、次のようなものです。

U:\user\java>java ArgTest 10 20 abc



ArgTest という java プログラムにとって、10 20 abc が引数となります。(コマンドラインという言葉はDOSプロンプトなどで命令を1行に書いてEnterで実行させるところから来ています)この引数が、次の main の(  )の中の文字列の配列に読み込まれます。

public static void main( String[] args ) {

その結果空白を区切りとして3つの要素があると判断され、次のように代入されます。

args[0]args[1]args[2]
1020abc

ファイル名 ArgTest.java

/** コマンドライン引数のテスト */
public class ArgTest { 
       public static void main( String[] args ) {
               System.out.println ( args[0] );
               System.out.println ( args[1] );
               System.out.println ( args[2] );
       } 
}

コンパイル後実行すると次のようになります。

U:\user\java>java ArgTest 10 20 abc
10
20
abc

このプログラムは args[2] を参照していますから、引数が3より少ないと実行時にエラーになります。

コマンドライン引数は文字列

コマンドライン引数は文字列ですから 10 は 10 でなくて、"10" なのです。もし、上記のプログラムの中で次の様な命令をすると、結果は 30 ではありません。

System.out.println ( args[0] + args[1] );

これを数値として使用するためには、変換が必要です。次の様にします。

int a = Integer.parseInt( args[0] );

これで、a という int型の変数に、10という数値がはいります。

課題

1.

上記 ArgTest.java を作りなさい。

ファイル名 ArgTest.java

2.

2つの引数を入れて実行すると、足し算をするプログラムを作りなさい。

ファイル名 ArgTest2.java

/** 2つの引数の和を求める */
public class ArgTest2 { 
       public static void main( String[] args ) {
             /* このあとを続けること。 */


3.

1つの引数をうけとり、それを分として解釈して〜時間〜分と表示するプログラムを作りなさい。

ファイル名 ArgTest3.java

実行例(1:20や4:10などの表示でもよい)

U:\user\java> java ArgTest3 80
1時間20分

U:\user\java> java ArgTest3 250
4時間10分

補充解説

引数の数が足りないとエラーになることがあります。配列の要素数を調べる方法がありますから、これを使って引数の数を知ることができます。

int i = args.length;

これで i の中に args という配列の要素の数を得ることができます。

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified