Javaのコマンドライン引数について

このQ&Aのポイント
  • Javaのコマンドライン引数について説明します。
  • コマンドライン引数を使って配列を渡す方法を教えてください。
  • 配列中の最大値を求めるプログラムをコマンドライン引数で実行する方法を教えてください。
回答を見る
  • ベストアンサー

javaのコマンドライン引数について

このプログラムをベースにして、配列をコマンドライン引数で渡せるようにしたいのですが、どうすれば良いのでしょうか。教えてください。 public class Test { public static void main(String[] args){ int[] numbers = {14,8,1,5,0,2,2,5,8,50}; System.out.print("配列中の最大値:"+maxNumber(numbers)); } static int maxNumber(int[] numbers){ int max = 0; for(int i=0; i<numbers.length;i++){ if(max < numbers[i]){ max = numbers[i]; } } return max; } }

noname#206500
noname#206500
  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

コマンドライン引数で渡されたものは argsに入っているから それをintに変換すればいいだけよ > java Test 14 8 1 5 0 2 2 5 8 50 の場合 int[] numbers = new int[args.length]; for (int i = 0; i < args.length; i++) { numbers[i] = Integer.parseInt(args[i]); } > java Test 14,8,1,5,0,2,2,5,8,50 の場合 String[] data = args[0].split(","); int[] numbers = new int[data.length]; for (int i = 0; i < data.length; i++) { numbers[i] = Integer.parseInt(data[i]); } コンパイルして確認していないけどこんな感じ

noname#206500
質問者

お礼

ありがとうございます、おかげさまで無事完成しました!!

関連するQ&A

  • コマンドライン引数を用いて。

    コマンドライン引数を用いて足し算をさせるプログラムです。 class goukei{ public static void main(String args[]){ int i, count; int sum = 0; int a[]; count = args.length; for(i=0; i<args.length; i++){ int arg_i = Integer.parseInt(args[i]); sum = sum + arg_i; } System.out.println("引数の数は" + count); System.out.println("合計は" + sum); } } と考えたのですが、もっとこうしたほうがいいという部分があれば教えてください。 一応これでできているとは思うのですがイマイチ自信がありません・・・。

    • ベストアンサー
    • Java
  • javaプログラミングの質問です。

    プログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } }

    • ベストアンサー
    • Java
  • c# コマンドラインから引数の指定の仕方

    c#を勉強している初心者です。 入門書やネットで検索してもコマンドラインから引数の指定の仕方が わかりません。 次のように書いた後 class CommandLine {    static void Main(string[] args)     {        Console.WriteLine("parameter count = {0}", args.Length);        for (int i = 0; i < args.Length; i++)        {           Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);        }     } } デバックなしで開始 → 続行するには何かキーを押してください で終わってしまいます。 いつ、どのようにしてコマンドラインから指定(書き込む?)のですか? よろしくお願いします。

  • 参考書の演習問題

    クラスはMaxAndMinOfInt フィールド int型の配列(名前はnumbersとします)のみ コンストラクタ 引数で与えられたScannerから整数を順次読み取る。最初に読み取った整数を配列サイズとみなして、int型の配列を生成し、numbersで参照する。その後、整数を読み取ってはnumbers[0],numbers[1],・・・へ順に代入していき、配列サイズ分だけ読み取れば終了。 メソッド void showAll() numbers中の全要素を判りやすく表示する int max() numbers中の最大値を返す int min() numbers中の最小値を返す クラスの機能を確認するためのmainメソッド public static void main(String[] args){   Scanner kbScanner = new Scanner(System.in);   MaxAndMinOfInt array = new MaxAndMinOfInt(kbScanner);   array.showAll();   System.out.printf("最小値は%dです. \n", array.min());   System.out.printf("最大値は%dです. \n", array.max()); } 実行例 これは配列サイズ→5 2 4 6 10 1 ←これはキーボード入力 [2, 4, 6, 10, 1] 最小値は1です. 最大値は10です. 以下は自分で打ち込んでみたものです import java.util.Scanner; public class MaxAndMinOfInt { int[] numbers; public MaxAndMinOfInt(Scanner scanner) { numbers = new int[0]; Scanner kbScanner = new Scanner(System.in); System.out.println(""); int numbers = kbScanner.nextInt(); for (int i = 0;i < numbers; i++) { System.out.print((i + 1)); } } public void showAll() { for (int i = 0; i < numbers.length; i++) { System.out.printf("[]", numbers[i]); } } public int max() { int max = 0; max = numbers[0]; for(int i = 1; i < numbers.length; i++){ if(max < numbers[i]) max = numbers[i]; } return max; } public int min() { int min = 0; min = numbers[0]; for(int i = 1; i < numbers.length; i++){ if(min > numbers[i]) min = numbers[i]; } return min; } public static void main(String[] args) { Scanner kbScanner = new Scanner(System.in); MaxAndMinOfInt array = new MaxAndMinOfInt(kbScanner); array.showAll(); System.out.printf("最小値は%dです.\n", array.min()); System.out.printf("最大値は%dです.\n", array.max()); } } これを実行しても実行例のような表示になりません。 どこを変更すればいいか教えてください。

  • コマンドライン引数 java

    学校で、2進数表記された文字列number1、number2…numberNを数値に変換し、合計を算出し、2進数表記の文字列に変換した結果を出力するプログラムを組む課題が出ました。 java Lesson06 number1 number2 … numberN の形式で受け取ったコマンドライン引数を元に、処理を行います。 ※number1からnumberNは、全て0か1のみで構成されている文字列 * 文字列の加算 * System.outまたはSystem.errのprint系メソッドで、Stringの値を受け取るもの以外 * Integerなどのラッパークラス * DecimalFormatなどの書式変換クラス 上記の機能は使ってはいけません。 ---- class Lesson{  public static void main(String args[]){   int sum;   for(int i = 1; i < args.length; i ++) {    int len = strlen(args[i]);//※    for(int j = 0; j < len; j ++) {     if(args[i][len - j - 1] == "1") {//※      sum = pow(2, j) + sum;//※     }    }   }  } } ---- とりあえず、与えられた二進数を計算する部分まで作ってみたのですが、※の部分でエラーが出てしまいます。 コマンドライン引数もよく分からなくて困っているので、教えていただければ助かります。 以上よろしくお願いいたします。

    • ベストアンサー
    • Java
  • javaのmainの引数はなぜstring[]?

    Java初心者です。 基礎的なことなのですが、質問させてください。 javaのmainメソッド定義の public static void main (String[] args) について、String[] argsの部分がjavaコマンドで実行する際に与える引数であることは 理解できました。しかし、なぜStringの配列なのかが理解できません。 実行時の引数であれば、intやdoubleも使い道があるようにも感じるので、 プログラマの好きに定義できた方が便利な気がしますし、実行時に引数を与えないなら public static void main () としてしまったほうがわかりやすいとも感じてしまいます。 実はコンパイル時や実行時に裏の見えない部分でStringの配列を使っているとか、 何か理由があるのでしょうか? mainの定義は main (String[] args)と暗記でもいいのですが、 気になったので知りたく、質問させてください。

    • ベストアンサー
    • Java
  • javaプログラムについて

    コマンドライン引数から複数の値を受け取り、それらの最大と最小を表示する、というプログラムなのですが。 class Maxmin{   public static void main (String[] args) {    int max=Integer.MIN_VALUE;    int min=Integer.MAX_VALUE;    for (int i=0; i<args.length; i++){     int num= Integer.parseInt(args[i]);     if(num>max)     max=num;     if(num<min)     min=num;    }    System.out.println("最大値は" + max + "です。");    System.out.println("最小値は" + min + "です。");  } } このプログラムでも問題なく表示されるのですが、MIN_VALUEとMAX_VALUEを使用せずに表示する事、と指摘を受けました。自分の中でぱっと思いついたのがこれだったのですが、他にはどのような方法があるのでしょうか?

    • ベストアンサー
    • Java
  • javaのlengthに対して質問です

    javaのlengthに対して質問です public class Gauss { public static void main(String[] args){ int[] ia = new int[101]; for (int i = 0 ; i<ia.length;i++); } } 今の場合 ia.lengthはどれくらいの長さですか? ia だから2?

    • ベストアンサー
    • Java
  • コマンドライン引数はどこからやって来たのですか?

    こんにちは Javaで、 public static void main(String args[]) という引数は、どこからやって来たのでしょうか? これがコマンドラインに初めて書かれる文だとしたら、どこから引数を貰うのでしょうか? また、2番目に書いたクラスだったとしても、他のクラスのなかのものをそんな簡単に貰うことはできるのでしょうか? もし宜しければ回答お願い致します。

    • ベストアンサー
    • Java
  • Javaプログラミングについて

    ・下記のプログラミングで「//ここで配列を昇順にソートする」というプログラムがわかりません!! わかる方がいましたらサンプルを教えてください。 public class SortNum { public static void main(String[] args){ int[] a={5,9,3,1,7,8,2,6,4}; //数列の初期化 //ここで配列を昇順にソートする //ソートされた配列を出力 for(int i = 0;i < a.length;i++){ System.out.println(a[i]); } } }

専門家に質問してみよう