前提
質問するのはもちろんのことプログラム自体初心者ですので、おかしな点が多々あると思いますがよろしくお願いします。
実現したいこと
商品コードを入力させる
個数を入力させる
入力された商品コードの商品と個数分の金額を”McdDate”と”McdDate4”から表示する
表示したものを"McdDate2に書き込む"
発生している問題・エラーメッセージ
個数Exception in thread "main" java.lang.NumberFormatException: For input string: "[2, 4]" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:668) at java.base/java.lang.Integer.parseInt(Integer.java:786) at McdSaleInput.main(McdSaleInput.java:78) 実行するとこういったエラーメッセージが表示されました
該当のソースコード
java
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import java.util.Scanner; public class McdSaleInput { public static void main(String[] args) { String inFilename = "McdDate.txt"; String r = "McdDate4.txt"; String outFilename = "McdDate2.txt"; System.out.println("-------------------------------"); System.out.println(" 商品コード "); System.out.println("-------------------------------"); try { File file = new File("McdDate3.txt"); FileReader fileReader = new FileReader(file); int data; while ((data = fileReader.read()) != -1) { System.out.print((char) data ); } fileReader.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("-----------------------------------------"); System.out.println("【販売する商品コードを入力してください】"); System.out.println("【終了する場合は0を押してください】"); List<Integer> nums = new ArrayList<>(); List<Integer> abc=new ArrayList<>(); try(Scanner scanner = new Scanner(System.in);) { int v; int y; while(true) { v = scanner.nextInt(); System.out.print(" 個数"); if(v <= 0) break; y= scanner.nextInt(); nums.add(v); abc.add(y); } } if(nums.size() == 0) { System.out.print("エラーです"); System.exit(0); } try(BufferedReader br = new BufferedReader(new FileReader(inFilename)); BufferedReader m = new BufferedReader(new FileReader(r)); PrintWriter u = new PrintWriter(new FileWriter(outFilename)); PrintWriter pw = new PrintWriter(new FileWriter(outFilename));) { String line; String d; for(int i=1; (line=br.readLine()) != null; i++) for(int j=1; (d=m.readLine()) != null; j++){ if(nums.contains(i)) if(nums.contains(j)){ int num = Integer.parseInt(d); int w = Integer.parseInt(abc.toString()); int nh = num * w; System.out.println(line+nh ); pw.println(line); } } System.out.print("を販売しました"); } catch(IOException e) { e.printStackTrace(); System.exit(1); } }}
試したこと
補足情報(FW/ツールのバージョンなど)
【McdDate.txt】ビックマック
てりやきマックバーガー
チキンフィレオ
エビフィレオ
月見バーガー(期間限定)
チキンマックナゲット5個
ハッシュポテト
マックフライポテト(S)
マックフライポテト(M)
マックフライポテト(L)
コカ・コーラ(S)
コカ・コーラ(M)
コカ・コーラ(L)
ファンタメロン(M)
Qooすっきり白ブドウ(M)
アイスティ(M)
プレミアムローストコーヒー(S)
【McdDate4.txt】
410
370
380
400
360
200
140
160
290
240
100
220
250
220
220
220
100
0 コメント