【问题标题】:How do I create a loop that goes from line to line of an ArrayList splitting each line up?如何创建一个从 ArrayList 的行到行的循环,将每行拆分?
【发布时间】:2016-02-22 19:47:09
【问题描述】:

我有一个访问文件并将每一行设置为数组列表中的新字符串行的函数。如何创建一个循环,将遍历每一行并拆分存在“,”的行以创建“列”。

示例: 该文件包含行

a, 1, 3, b
3, 2, 5, 6
c, b, d, 4

以下将每行保存为数组列表中的字符串

ArrayList<String> result = new ArrayList<String>();
while(input_file.hasNextLine())
{
    String line = input_file.nextLine();
    result.add(line);
}

从这里我有点难过。我知道以下代码将采用文件“a、1、3、b”的第一行并将其拆分为新数组列表中的新字符串。

String foo = input_file.nextLine();
List<String> myList = new ArrayList<String>(Arrays.asList(foo.split(",")));

有没有办法将这两者结合起来,这样我就可以遍历每一行并拆分所有内容?从这里我也想知道如何将某一列中的数字相加。我知道我可能必须使用 for 循环来调用每个第 n 个值(作为列 #)并编写一个 if 语句,通过 parse 语句检查它们,然后添加它们来仅获取数字列中的值.

【问题讨论】:

  • 您可以创建一个 Arraylist> 结果,而不是添加行,您可以添加包含拆分字符串的 arraylist。

标签: java loops arraylist while-loop split


【解决方案1】:
try (Stream<String> fs = Files.lines(path)) {
  List<List<String>> linesByElements = fs
      .map(s -> Arrays.asList(s.split(",")))
      .collect(Collectors.toList());
}

【讨论】:

    【解决方案2】:

    您可以创建Arraylist&lt;Arraylist&lt;String&gt;&gt; 结果,而不是添加行,您可以添加包含拆分字符串的arraylist。

    代码将如下所示。

    ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>():
    while(input_file.hasNextLine())
    {
        String line = input_file.nextLine();
        List<String> myList = new ArrayList<String>(Arrays.asList(line.split(",")));
        result.add(myList);
    }
    

    result.get(0) 将包含一个带有拆分字符串的ArrayList&lt;String&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-24
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多