Excelで
Aさん|19|男
Bさん|20|女
Cさん|35|男
これをcsvに変換しjavaで読み込みたいのですが
配列に格納して
name[0]=Aさん
name[1]=Bさん
name[2]=Cさん
age[0]=19
age[1]=20
.
.
.
という形にしたいのですが可能ですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
可能ですので頑張って下さい。
投稿2018/04/16 11:34
総合スコア5737
0
data.csv
Aさん,19,男 Bさん,20,女 Cさん,35,男
TeratailX.java
java
1import java.io.IOException; 2import java.nio.file.Files; 3import java.nio.file.Paths; 4import java.util.ArrayList; 5import java.util.Arrays; 6import java.util.List; 7import java.util.stream.Collectors; 8import java.util.stream.Stream; 9 10// See https://stackoverflow.com/questions/34639928 11// Parsing a CSV file for a unique row using the new Java 8 Streams API 12 13public class TeratailX { 14 15 public static void main(String[] args) { 16 String fileName = "data.csv"; 17 18 try (Stream<String> lines = Files.lines(Paths.get(fileName))) { 19 List<List<String>> values = lines.map(line -> Arrays.asList(line.split(","))).collect(Collectors.toList()); 20 System.out.println(Arrays.toString(values.toArray())); 21 22 List<String> names = new ArrayList<String>(); 23 List<Integer> ages = new ArrayList<Integer>(); 24 for (List<String> value : values) { 25 names.add(value.get(0)); 26 ages.add(Integer.parseInt(value.get(1))); 27 } 28 String[] name_ary = names.toArray(new String[names.size()]); 29 int[] age_ary = ages.stream().mapToInt(Integer::intValue).toArray(); 30 31 System.out.println(Arrays.toString(name_ary)); 32 System.out.println(Arrays.toString(age_ary)); 33 } catch (IOException e) { 34 e.printStackTrace(); 35 } 36 } 37 38}
投稿2018/04/16 19:17
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/16 11:35
退会済みユーザー
2018/04/16 11:45
退会済みユーザー
2018/04/16 11:54
2018/04/16 12:07