Java – 受け取ったコマンドライン引数の数値をint型変数に格納する方法
Javaでは、コマンドライン引数はString型の配列としてmainメソッドに渡されます。
数値をint型に変換するには、Integer.parseInt()メソッドを使用します。
例えば、args[0]に格納された値をint型に変換する場合、int number = Integer.parseInt(args[0]);と記述します。
引数が数値でない場合はNumberFormatExceptionが発生するため、例外処理を行うことが推奨されます。
コマンドライン引数を数値に変換する方法
Javaでは、コマンドライン引数を受け取ることができ、これをプログラム内で利用することができます。
コマンドライン引数は、プログラムの実行時に指定することができる値で、通常は文字列として受け取ります。
数値を扱う場合は、これを適切に変換する必要があります。
以下に、コマンドライン引数を整数型(int型)に変換する方法を示します。
import java.util.Arrays; // 配列操作のためのインポート
public class App {
    public static void main(String[] args) {
        // コマンドライン引数を整数型に変換する
        int[] numbers = new int[args.length]; // 引数の数だけ配列を作成
        for (int i = 0; i < args.length; i++) {
            // 文字列を整数に変換
            numbers[i] = Integer.parseInt(args[i]); // 変換処理
        }
        // 結果を表示
        System.out.println("受け取った数値: " + Arrays.toString(numbers)); // 配列の内容を表示
    }
}実行方法
- 上記のコードをApp.javaというファイル名で保存します。
- コマンドラインで以下のコマンドを実行します。
javac App.java
java App 10 20 30受け取った数値: [10, 20, 30]このコードでは、コマンドライン引数として受け取った文字列をInteger.parseInt()メソッドを使用して整数に変換しています。
引数の数だけ配列を作成し、各引数を整数型に変換して格納しています。
最終的に、受け取った数値を表示しています。
エラー処理の実装
コマンドライン引数を数値に変換する際には、入力が正しい形式であることを確認するためにエラー処理を実装することが重要です。
特に、数値以外の文字列が入力された場合、Integer.parseInt()メソッドはNumberFormatExceptionをスローします。
このエラーを適切に処理することで、プログラムの安定性を向上させることができます。
以下に、エラー処理を追加したサンプルコードを示します。
import java.util.Arrays; // 配列操作のためのインポート
public class App {
    public static void main(String[] args) {
        // コマンドライン引数を整数型に変換する
        int[] numbers = new int[args.length]; // 引数の数だけ配列を作成
        for (int i = 0; i < args.length; i++) {
            try {
                // 文字列を整数に変換
                numbers[i] = Integer.parseInt(args[i]); // 変換処理
            } catch (NumberFormatException e) {
                // エラーが発生した場合の処理
                System.out.println("エラー: '" + args[i] + "' は整数ではありません。"); // エラーメッセージ
                return; // プログラムを終了
            }
        }
        // 結果を表示
        System.out.println("受け取った数値: " + Arrays.toString(numbers)); // 配列の内容を表示
    }
}実行方法
- 上記のコードをApp.javaというファイル名で保存します。
- コマンドラインで以下のコマンドを実行します。
javac App.java
java App 10 20 abcエラー: 'abc' は整数ではありません。このコードでは、try-catchブロックを使用して、Integer.parseInt()メソッドの呼び出しを囲んでいます。
もし数値以外の文字列が入力された場合、NumberFormatExceptionがスローされ、エラーメッセージが表示されます。
このようにして、プログラムが不正な入力に対して適切に反応できるようになります。
応用例
コマンドライン引数を数値に変換する基本的な方法を理解した後、さまざまな応用が可能です。
ここでは、受け取った数値の合計や平均を計算する例を示します。
このような処理は、データ分析や数値計算を行う際に非常に役立ちます。
以下に、合計と平均を計算するサンプルコードを示します。
import java.util.Arrays; // 配列操作のためのインポート
public class App {
    public static void main(String[] args) {
        int[] numbers = new int[args.length]; // 引数の数だけ配列を作成
        int sum = 0; // 合計を格納する変数
        double average; // 平均を格納する変数
        for (int i = 0; i < args.length; i++) {
            try {
                // 文字列を整数に変換
                numbers[i] = Integer.parseInt(args[i]); // 変換処理
                sum += numbers[i]; // 合計を計算
            } catch (NumberFormatException e) {
                System.out.println("エラー: '" + args[i] + "' は整数ではありません。"); // エラーメッセージ
                return; // プログラムを終了
            }
        }
        // 平均を計算
        average = (double) sum / numbers.length; // 合計を要素数で割る
        // 結果を表示
        System.out.println("受け取った数値: " + Arrays.toString(numbers)); // 配列の内容を表示
        System.out.println("合計: " + sum); // 合計を表示
        System.out.println("平均: " + average); // 平均を表示
    }
}実行方法
- 上記のコードをApp.javaというファイル名で保存します。
- コマンドラインで以下のコマンドを実行します。
javac App.java
java App 10 20 30 40受け取った数値: [10, 20, 30, 40]
合計: 100
平均: 25.0このコードでは、受け取った数値の合計を計算し、さらにその合計を要素数で割ることで平均を求めています。
エラー処理も含まれているため、数値以外の入力があった場合には適切にエラーメッセージが表示されます。
このように、コマンドライン引数を利用することで、さまざまなデータ処理を行うことができます。
まとめ
この記事では、Javaにおけるコマンドライン引数の受け取り方や、数値への変換方法、さらにエラー処理の実装と応用例について詳しく解説しました。
コマンドライン引数を利用することで、プログラムに柔軟性を持たせ、さまざまなデータ処理を行うことが可能になります。
ぜひ、実際にコードを試してみて、コマンドライン引数を活用したプログラムを作成してみてください。
 
![[Java] コマンドライン引数をオプションのように扱う方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51287.png)
![[Java] コマンドライン引数をfor文で全て取得する方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51285.png)
![[Java] 複数のコマンドライン引数を扱う方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51291.png)
![[Java] コマンドライン引数の一部を配列化する](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51290.png)
![[Java] コマンドライン引数がない場合の処理を実装する方法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51288.png)
![[Java] コマンドライン引数のargsとは?引数の使い方を解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51284.png)
![[Java] Streamのメソッドチェーンについてわかりやすく解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51283.png)
![[Java] mainメソッドが戻り値を持たない理由を解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51282.png)
![[Java] mainメソッドを複数定義するとどのmainが呼ばれる?](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51281.png)
![[Java] mainメソッドの書き方を初心者向けに解説](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51280.png)
![[Java] mainメソッドが呼び出される仕組み – エントリーポイントへの理解](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51278.png)
![[Java] mainメソッドが見つからないエラーが起きる際の対処法](https://af-e.net/wp-content/uploads/2024/11/thumbnail-51277.png)