初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
コマンドライン引数
javaでは、main()メソッドを利用してプログラムに引数を与えます。
そのため、main()メソッドは、String型の配列を1つ持っています。
今まで、何も考えなく書いていた、
System.out.println(String args[]) がそれです。
コマンドライン引数は、 main() メソッド内で利用できるパラメ-タを与える仕組みです。
コマンド ラインで実行時に渡された文字列が String 型の配列 args に代入されます。
コマンドラインから渡された引数の最初の文字列はargs[0]で呼び出すことができます。
また配列の長さをあらわすのにlength を利用して求めることができます。
では、コマンドラインを使ったサンプルプログラムを作っていきます。
サンプルプログラム(Sample31.java)
class Sample31{ public static void main(String args[]){ System.out.println("args[0] =" + args[0]); System.out.println("args[1] =" + args[1]); System.out.println("-----------------"); System.out.println("配列の長さは"); System.out.println(args.length); } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイルしてみます。
次に実行するのですがただ実行はしません。
今までは実行となれば
java Sample31
でした。ここではコマンドラインから引数を渡さなければいけません。
つまり、System.out.println("args[0] =" + args[0]);
System.out.println("args[1] =" + args[1]);
ということで2つの引数を渡さなければいけません。
渡し方は java Sample31 引数 引数 です。
引数の間は必ず半角スペースを入れなければいけません。
では、実行します。
以下のように記述してください。
java Sample31 今日は いい天気だな?次に
java Sample31 10 20
と実行してください。今回あえて2回実行しました。つまりコマンドラインの引数を変えてやるだけで実行k結果も変わります。
また、ここであえて2回目の実行に数字の10 20を引数に渡しましたが、ここでの10 20 はint型ではなく
String型の文字列です。そこを間違えないようにしてください。
今回は2回実行しました。実行結果は上記のようになります。
コマンドプロンプスでの文字の入力方法
今、ここでjava Sample31 今日は いい天気だな?と記述してください。といいましたが、あれ今日は いい天気だな?が入力できない?と悩まれている方もいるのではと思い
ここで入力方法を解説したいと思います。
これは、XPでの入力方法ですが
Altキー + 半角/全角キーです。半角/全角キーはTabキーの上にあります。
Altキー + 半角/全角キーを押すと以下のようになります。上の図を見てください。
右下に全あ般ローマとなっています。
それで日本語入力ができるようになりました。
サンプルプログラム(Sample31_1.java)
class Sample31_1{ public static void main(String args[]){ System.out.println("args[0] =" + args[0]); System.out.println("args[1] =" + args[1]); System.out.println(args[0] +" + " + args[1] + " = " + (args[0] + args[1])); } }
プログラムをコピーする場合すべて選択をクリックしてください。
サンプルプログラム(Sample31_2.java)
class Sample31_2{ public static void main(String args[]){ System.out.println("args[0] =" + args[0]); System.out.println("args[1] =" + args[1]);
int x = Integer.parseInt(args[0]); int y = Integer.parseInt(args[1]); System.out.println(args[0] +" + " + args[1] + " = " + (x + y));
} }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
Sample31_1 も Sample31_2 も引数に 10 20 を渡しました。
しかし演算結果は異なります。
Sample31_1 は そのまま args[0] と args[1] を演算しているので、10 も 20も文字列 として扱われています。
文字列の計算はそのまま連結するだけでしたね。
したがって、10 と 20 を連結して1020になります。しかし、Sample31_2は Integer.parseIntメソッドを使ってint型に変換しています。
ここで、使用している Integer.parseIntはIntegerクラスのメソッドで文字列をint型に変換してくれます。
したがってint型のデータとして扱われるわけです。
出力結果でわかるように 10 + 20 = 30 になるわけです。