データを受け取り、setName(データ)をfor文で回して、
数値データ(price)のときだけ、数値型で保管したいと考えています。
もし、数値ではなく文字列の”あ”や"a"などが入っていたら、0と返すように
試行錯誤している段階です。
Java
1List<String> readDataList = {title1, name1, date1, finishDate1, price, 2 title2, name2, date2, finishDate2, price } 3List<BookInfo> inputList = new ArrayList<>(); 4 5for (String lineData : readDataList) { 6 BookInfo bookinfo = new BookInfo(); 7 8 String[] data = lineData.split(",",-1); 9 bookinfo.setTitle(data[0]); 10 bookinfo.setName(data[1]); 11 bookinfo.setDate(data[2]); 12 bookinfo.setFinishDate(data[3]); 13 String price = String.format("%0d", data[4]); 14 bookinfo.setPrice(price); 15 16 //上記で配置したデータを呼び出すメソッド 17 System.out.println(showAll()); 18}
MissingFormatWidthExceptionが
表示されます。
BookInfoはどのような型ですか?
こめんとありがとうございます。
データを扱うデータクラスとなっています。
質問に記載されている「数値」ってもしかして「数字だけで構成された文字列」の事でしょうか?
わかりづらくてすみません。
CSVデータなどの中身のわからないものを読み込み、
数字データだけ抽出してstringになる”あ”、”か”、”A”といった文字データは0と返したいです。
数値の0 か 文字列の"0" どちらでしょうか?
BookInfoのPriceの型は何ですか?(String? int ? long ? Integer ? Long ?)
(というのが不明なためmaisumakunさんは「BookInfoはどのような型ですか?」と質問されてます。)
数値の0です。
BookInfoのPriceは int です
浅はかな解答でした。
質問している身なのに申し訳ありません。
String.format()は数値を文字列に変換するので intのPriceへはセットできません。
mahnyさんの回答でいいと思います。(result をbookinfo.setPrice()に渡してやればいいです。)
setPriceがintを受け取るなら、コンパイルエラーになるんじゃなかろうか。
BookInfoにあるPriceの型の確認?それともsetPriceの引数の型の話?
を、Takalogさんが意識できていないし、回答者もきちんと確認できていないと思いますが。
回答3件
あなたの回答
tips
プレビュー