前提
Javaの勉強をしています。
ファイルを取り込んで、1選手の成績を一行でコンソールで表示する際にエラーメッセージが発生しました。
実現したいこと
- 日本語変数モデル
- リスト1選手の成績が4行で表されているファイルを読み込んでモデルに格納後、さらにListに格納。
- リスト1選手の成績を1行でコンソールに出力。
発生している問題・エラーメッセージ
java
1java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 2 at Challenge.Pro.<init>(Pro.java:11) 3 at Challenge.Challenge5.main(Challenge5.java:29)
該当のソースコード
メインクラス
java
1package Challenge; 2 3import java.io.BufferedReader; 4import java.io.File; 5import java.io.FileInputStream; 6import java.io.InputStreamReader; 7import java.util.ArrayList; 8import java.util.List; 9 10public class Challenge5 { 11 private static final String FILE_PATH = "C:\\Users\\user name \\Documents\\workspace-spring-tool-suite-4-4.15.3.RELEASE\\test 1st\\dat\\pro.csv"; 12 13 public static void main(String[] args) { 14 File file = new File(FILE_PATH); 15 16 try (FileInputStream fis = new FileInputStream(file); 17 InputStreamReader isr = new InputStreamReader(fis); 18 BufferedReader br = new BufferedReader(isr);) { 19 20 21 List<Pro> pros = new ArrayList<>(); 22 String line; 23 24 25 while ((line = br.readLine()) != null) { 26 String[] strs = line.split("\n"); 27 28 // コンストラクタをオーバロードして呼び出し 29 Pro pro = new Pro(strs); //29行目 30 pros.add(pro); 31 32 } 33 34 for (Pro pro1 : pros) { 35 System.out.println(pro1); 36 37 } 38 39 } catch (Exception e) { 40 e.printStackTrace(); 41 42 } finally { 43 44 } 45 } 46}
pro class
java
1package Challenge; 2 3public class Pro { 4 private String 順位; 5 private String 選手名; 6 private String 球団; 7 private String 打率; 8 9 public Pro(String[] pros) { 10 this.set順位(pros[0]); 11 this.set選手名(pros[1]);//11行目 12 this.set球団(pros[2]); 13 this.set打率(pros[3]); 14 } 15 16 public String get順位() { 17 return 順位; 18 } 19 20 public void set順位(String 順位) { 21 this.順位 = 順位; 22 } 23 24 public String get選手名() { 25 return 選手名; 26 } 27 28 public void set選手名(String 選手名) { 29 this.選手名 = 選手名; 30 } 31 32 public String get球団() { 33 return 球団; 34 } 35 36 public void set球団(String 球団) { 37 this.球団 = 球団; 38 } 39 40 public String get打率() { 41 return 打率; 42 } 43 44 public void set打率(String 打率) { 45 this.打率 = 打率; 46 } 47 48 public String toString() { 49 return "順位=" + this.get順位() + ", 選手名" + this.get選手名() + ", 球団" + this.get球団() + ", 打率" + this.get打率(); 50 } 51}
呼び出したいファイル
1 村上 (ヤ) .340 115 496 394 134 17 0 49 298 120 95 97 97 5 0 0 12 6 5 .476 .756 1.232 .376 12 2 大島 (中) .323 82 367 337 109 11 1 1 125 15 35 42 21 7 2 0 7 3 1 .375 .371 .746 .246 0 3 佐野 (デ) .320 101 438 406 130 26 1 17 209 57 48 44 28 3 0 1 0 1 10 .368 .515 .882 .289 4 4 宮﨑 (デ) .308 93 373 334 103 22 0 9 152 34 39 25 35 2 0 2 0 0 11 .375 .455 .830 .254 5 5 近本 (神) .293 110 485 441 129 14 1 1 148 25 58 50 35 6 3 0 23 5 7 .353 .336 .688 .314 2 6 坂倉 (広) .289 121 505 456 132 17 3 12 191 56 64 72 37 8 0 4 1 1 13 .350 .419 .769 .295 13 7 牧 (デ) .288 103 437 389 112 28 1 22 208 70 55 65 34 8 0
回答1件
あなたの回答
tips
プレビュー