-1

64 ビット Linux システムで Java でこのコードを書きました。

    class WrapperClass1
    {
       public static void main(String s [])
       {
            int noinput=s.length;
            System.out.println("Number of values entered is :- " + noinput);
            System.out.println( s[0] + "," + s[1] );
            int x = Integer.parseInt(s[0]);
            int y = Integer.parseInt(s[1]);
            int z = x + y;
            System.out.println(" Sum = " + z);
       }
    };

今、コンパイルしようとすると、正常にコンパイルされますが、プログラムを実行すると、次の例外が表示されます。

           Number of values entered is :- 0
           Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
           at WrapperClass1.main(WrapperClass1.java:7)
4

4 に答える 4

0

この問題の原因となっている引数を渡していません。

ArrayIndexOutOfBoundsException

配列が不正なインデックスでアクセスされたことを示すためにスローされます。インデックスが負であるか、配列のサイズ以上です。

あなたの場合、プログラムの実行中に合格していません。s[0]したがって、 orへのアクセス中に例外がスローされますs[1]

于 2013-01-14T05:39:00.547 に答える
0

配列 s は空なので、 s[0] のようにアイテムをポップしようとすると、そこには何もないため、この例外がスローされます。

于 2013-01-14T05:41:18.623 に答える
0

入力: 文字列[]

どの方法に?-->main(String[] args)

いつ与える?java <className> <input1> <input2> ...-->実行すると言いながら

いつ投げArrayIndexOutOfBoundsExceptionますか?-->

イニシャル : 文字列 s[]

しかし、変数(配列)を初期化する前に、利用できないインデックスにアクセスしようとしています...

解決策:コマンドを介して入力を提供します(これらはコマンドライン引数であるため)

入力がなくてもエラーを回避する方法は? --> 配列のサイズを確認し、

お役に立てれば

于 2013-01-14T06:09:24.603 に答える
0

少なくとも 2かどうかをチェックするifステートメントの使用を検討する必要があります。そうすれば、s[0] と s[1] を.noinputArrayIndexOutOfBoundsException

于 2013-01-14T06:10:04.800 に答える