• ベストアンサー

Integerについて

class Sample5_7_Integer { /** * Integerクラスのメソッド */ public static void main(String[] args) { //String → int int i1 = Integer.parseInt(args[0]); //int型にすることにより計算可能 System.out.println(i1 + 100); //String → integer Integer i2 = Integer.valueOf(args[0]); System.out.println(i2); Integer i3 = new Integer(100); System.out.println(i2.equals(i3)); } } をEclipseで実行したところ、 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at benkyou.Sample5_7_Integer.main(Sample5_7_Integer.java:10) というエラーになってしまいます。 どなたか解決法をお願いします。

  • Java
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • NeilMania
  • ベストアンサー率30% (40/131)
回答No.3

eclipseの上の辺りに[ 実行 ] があります。 そうすると メイン , 引数、JREなどの項目が表示されると思います。 その引数の部分に与えたい数を入力すればいいんじゃないでしょうか。 eclipseを操作するならば参考書1冊あった方がだいぶ 楽だと思いますよ。

dai5719
質問者

お礼

実行→構成およびデバッグのとこですね。 引数に100を設定したところ、おかげさまで出来ました。 ありがとうございました(^-^)

その他の回答 (2)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

コマンドプロンプトでjavaを起動。 コンパイル後 C:\java Sample5_7_Integer 100 と入力してみる。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

args[0]を参照しているけど、Eclipseから実行するときに起動時引数を与えた? 実行の設定の中に引数の設定項目があるので、そこに引数を設定しましょう。していないと引数がないのでargsは長さ0であり、args[0]は配列の範囲外になります。

dai5719
質問者

補足

すいません。よくわからないんですが・・・(^^;) ウインドウ→設定のところですか? そこもよく見てみたのですが、よくわからなかったです。 もしよければ、詳しく設定方法を教えていただけますか? お願い致します。

関連するQ&A

  • Integer クラスについて教えて下さい

     今晩は、java初心者です、宜しくお願いします。    Integerクラスについて下のように「i1 = new Integer("1");」と書いても「i2 = new Integer(1);」 と書いても、どちらも数字として認識されているようです。  正式な書き方としてはどちらなんでしょうか、宜しくお願いします。 ========================================================================= public class Test1 { public static void main(String[] args) { Integer i1 = new Integer("1"); System.out.println((i1+2)); Integer i2 = new Integer(1); System.out.println((i2+3)); } }

    • ベストアンサー
    • Java
  • intではなくStringで・・・

    こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!

    • ベストアンサー
    • Java
  • JAVAについて

    現在JAVAについて学んでいるのですが、下記のソースが実行出来ません。どなたかわかる方、回答宜しくお願いいたします。 public class Lound { void main(String[] args) { String rtn = methWithParamReturn(3); if(rtn.equals("0")) System.out.println("0あかんよ"); else System.out.println(rtn); } public String methWithParamReturn(int x) { System.out.println(x); x= x*x; String str = String.valueOf(x); return str; } }

  • 研修生です。

    class dentaku{ public static void main(String args[]){ int val1 = 0; int val2 = 0; String ope; int kekka; if (args.length != 3){ System.out.println("引数は3個入力して下さい"); System.exit(0); } try{ val1 = Integer.parseInt(args[0]); val2 = Integer.parseInt(args[2]); }catch(NumberFormatException e){ System.out.println("数値でない値が入力されています"); System.exit(0); } ope = args[1]; String opeStr[] = {"kake", "waru", "tasu", "hiku"}; boolean errFlag = true; for (int i = 0 ; i < 4 ; i++){ if (ope.equals(opeStr[i])){ errFlag = false; } } if (errFlag == true){ System.out.println("演算子は kake waru tasu hiku の4つです"); System.exit(0); } if (ope.equals("kake")){ kekka = val1 * val2; }else if (ope.equals("tasu")){ kekka = val1 + val2; }else if (ope.equals("hiku")){ kekka = val1 - val2; }else{ if (val2 == 0){ System.out.println("0で割ろうとしています。"); System.exit(0); } kekka = val1 / val2; } System.out.println("入力された式は " + val1 + " " + ope + " " + val2 + " です"); System.out.println("計算結果は " + kekka + " です"); } }  上記のプログラムを全行網羅するために、引数のパターンを洗い出して表にしたいのです。 どうすればいいのですか?

  • javaのプログラムについて

    java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??

    • ベストアンサー
    • 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
  • プログラムの平均値の出し方。

    プログラムの平均値の出し方。 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; } } このプログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。

  • 書き換え

    以下のソースコード(*を使って二等辺三角形を表示するプログラム)をwhile文のかわりにdo-while文を使って書き換える方法が分かる方ぜひ教えてください。いろいろ試しましたがコンパイルできずに困っています↓ //Triangle2.java class Triangle2{ public static void main(String args[]){ try{ if(args.length !=1){ System.out.println("Please input single positive integer!"); } else if(Integer.parseInt(args[0])>0) { int n = Integer.parseInt(args[0]); int i=0; while(i < n){ int j=0; while (j <= i){ System.out.print("*"); j++; } System.out.println(); i++; } int m=n-1; while(m > 0){ int k=m; while(k > 0){ System.out.print("*"); k --; } System.out.println(); m --; } } else{ System.out.println("Please input single positive integer!"); } }catch(NumberFormatException e){ System.out.println("Please input single positive integer!"); } } }

  • 配列を使った・・・。

    配列を使って簡単な迷路を作っているのですが、なかなかうまくいきません。 0を" "1を"■"を表示させたいのですがうまくいきません。 何処を直せばいいのか教えてください。 public class Sample1 { public static void main (String[]args) { int [][] data = { {1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1}, {1,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1}, {1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1}, {1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,1}, {1,1,1,1,1,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1}, {1,1,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1}, {1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1}, {1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1}, {1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1}, {1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; for (int i=0; i<10; i++) { for (int j=0; j<20; j++) { System.out.print(data [i][j]); } if(data [i][j] = 1){ System.out.println("■"); }else{ System.out.println(" "); } } } }

    • ベストアンサー
    • Java
  • クラスのフィールドの値を配列に代入する方法

    フィールドの値を代入したいのですが、 java.lang.ArrayIndexOutOfBoundsException というエラーが出てしまい、どうすればいいのかわかりません。 どのように対処すればいいのでしょうか? class Car { String carname; int height; int width; int length; } class public static void main(String[] args) throw IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ int c_h[] = new int[5]; c_h[i] = car[i].height; } } よろしくお願いします。

    • ベストアンサー
    • Java