実現したいこと
Jspから受け取ったcsvファイル行単位で読み込んで、ある特定の列の値だけを
文字列変換などデータの加工を行う機能を考えています。
質問内容
それぞれの項目を二次元配列に格納して、ヘッダ部に一致するものを
変換を掛けようと思い考えていたのですが、ロジックがうまく思いつきません。
行単位で特定の項目だけ変換する方法はあるのでしょうか?
例えば下記のようなCSVファイルを受け取った時、『身長』の項目を『mm』のところ『cm』に変えたいのですが、
これを行単位で行いたいです。
該当のソースコード
Servlet
1 // 選択ファイルを受信 2 Part part = request.getPart("file"); 3 4 // CSVデータを格納する二次元配列 5 String[][] csvData = new String[100][]; 6 7 BufferedReader br = null; 8 try { 9 // csvファイルの読み込み 10 InputStream is = part.getInputStream(); 11 InputStreamReader isr = new InputStreamReader(is); 12 br = new BufferedReader(isr); 13 String line; 14 int index = 0; 15 while((line = br.readLine()) != null) { 16 csvData[index] = line.split(","); 17 index++; 18 } 19 // csvの中身を表示 20 for (int i=0; i < csvData.length; i++) { 21 for (int j=0; j < csvData[i].length; j++) { 22 System.out.println("csvData" + "[" + i + "]" + "[" + j + "]" + csvData[i][j]); 23 String searchElement = "身長"; 24 if(csvData[i].equals("身長")) { 25 26 27 } 28 } 29 } 30 31 } catch (Exception e) { 32 // TODO: handle exception 33 }
試したこと
CSVのヘッダ部含めて、全て二次元配列に格納し、ヘッダー部の項目に一致する、配列番号を変換させる処理を
考えていたのですが、それでは行単位でなく列単位の変換になることになりうまくいきませんでした。。
※上記の画像からであれば、『身長[i][2]』になるもの

回答2件
あなたの回答
tips
プレビュー