【问题标题】:putting a row array into an array [closed]将行数组放入数组中[关闭]
【发布时间】:2016-06-06 21:51:53
【问题描述】:

我有以下代码:

 try {
     CsvParserSettings parserSettings = new CsvParserSettings();
     parserSettings.setLineSeparatorDetectionEnabled(true);
     RowListProcessor rowProcessor = new RowListProcessor();
     parserSettings.setRowProcessor(rowProcessor);
     parserSettings.setHeaderExtractionEnabled(true);
     CsvParser parser = new CsvParser(parserSettings);

     parser.parse(new FileReader("C:\\Users\\Desktop\\GeoIPCountryWhois.csv"));

  String[] headers = rowProcessor.getHeaders();
List<String[]> rows = rowProcessor.getRows();
for (int index = 0;index< rows.size();index++){
System.out.println(Arrays.toString(rows.get(index)));
}

 } catch (FileNotFoundException ex) {
     Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
 }

这每次都会创建一行数组 如下所示

[1.0.1.0, 1.0.3.255, 16777472, 16778239, CN, China]
[1.0.4.0, 1.0.7.255, 16778240, 16779263, AU, Australia]
[1.0.8.0, 1.0.15.255, 16779264, 16781311, CN, China]

但是我想把我的数据放到一个数组中,我该怎么做呢?

【问题讨论】:

  • 你想要一个数组中的所有行吗?
  • “一个数组中的所有类”到底是什么意思?

标签: java arrays list csv


【解决方案1】:

你的意思是数组数组吗?

List<String[]> rows = rowProcessor.getRows();
String[][] rowsArray = rows.toArray(new String[rows.size()][]); //this contains an array of all your rows

验证:

for (int i = 0; i < rowsArray.length; i++) {
   System.out.println(Arrays.toString(rowsArray[i]));
}

这将提供与您相同的输出。

【讨论】:

    【解决方案2】:

    也许你想要这样的东西..

    List<String[]> rows = rowProcessor.getRows();
    
    List<String> oneList = rows.stream().flatMap(Arrays::stream).collect(Collectors.toList());
    String[] oneArray = oneList.toArray(new String[0]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多