JAVA
1 2 3 4import java.util.*; 5 6public class Main { 7 public static void main(String[] args) { 8 Scanner sc = new Scanner(System.in); 9 int member = sc.nextInt(); 10 String[] Special = new String[member]; //得意分野配列 11 String[] Point = new String[member]; //点数配列 12 13 14 for(int i = 0;i < member;i++){ 15 String special = sc.next(); 16 String point = sc.nextLine(); 17 Special[i] = special; 18 Point[i] = point; 19 ★ 20 } 21 int[] usepoint = new int[member]; 22 for(int i = 0;i < member;i++){ 23 usepoint[i] = Integer.parseInt(Point[i]); 24 ★(※上のコード1行分は消去) 25 } 26 } 27}
【スキャンする内容の形式】
5
s 70 78 82 57 74
l 68 81 81 60 78
s 63 76 55 80 75
s 90 100 96 10 10
l 88 78 81 97 93
一番上の"5"は行数です。スキャン内容は例なので実際は何行か不明です。
たくさんある数字はテストの点数で、左のアルファベットが個人の得意分野です。
得意分野と総合点で足切りをしたいという内容です。
【エラー概要】
まず、1行目に受験者数を表す数字があるので、その分だけループさせ、
得意分野と点数を交互に入れていくことで、とりあえず点数と得意分野配列を作りました。
ただ、点数配列に関して、1行分を纏めて取得するメソッドがnextLineしかなかったので、
String型になっています。
このままでは使えないので、int型のusepoint配列を作成し、String型のpoint配列の中身を
入れていこうと思ったのですが、「NumberFormatException」になります。
【質問】
NumberFormatExceptionは、integer等を使った際にint型に変換出来ないような値が
渡されたときに発生するとありました。
ということなので、★の箇所で"println(Point[i]);"を打ってみましたが、
出力されるのは数字だけでした。
エラーを回避して、両配列を作成する為にはどこを改善すればよいでしょうか。
お手数ですが、ご教示頂けますでしょうか。
ikedasさん
教えて頂き、有難う御座います。
エラーが出た際は、スタックトレースも一緒に載せて質問するようにします。
回答2件
あなたの回答
tips
プレビュー