java - 如何将 ArrayList 中的最后一个元素存储到另一个 ArrayList (Java)

标签 java

我有一个文本文件,内容为

NFR1: (some text) 
NFR2: (some text)
NFR3: (some text)

我想将具有模式“N”的文本文件中的所有字符串分组。

这是我到目前为止的代码:

import java.util.List;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

public static void main(String[] args) throws FileNotFoundException {
    List<String> result = new ArrayList<String>();
    Pattern patt = Pattern.compile("^N.*");
    BufferedReader r = new BufferedReader(new FileReader("fileName"));

    String line;
    try {
        while ((line = r.readLine()) != null) {
          Matcher m = patt.matcher(line);
          while (m.find()) {

            int start = m.start(0);
            int end = m.end(0);
            result.add(m.group());
            System.out.println(result);
          }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
}

输出如下:

[NFR1:]
[NFR1:,NFR2:]
[NFR1:,NFR2:,NFR3]

如何让数组只读

[NFR1:,NFR2:,NFR3]

没有上面的其他两个元素?

当我添加代码行以获取最后一个元素时:

if (result != null && !result.isEmpty()) {
              System.out.println("Last element is:");
              System.out.println(result.get(result.size()-1));
             }

输出为:

The last element is:
NFR1:
The last element is:
NFR2:
The last element is:
NFR3:

我做错了什么?

最佳答案

你没有做任何逻辑错误。只是您在 while 循环内部而不是外部进行打印。

while ((line = r.readLine()) != null) {
  Matcher m = patt.matcher(line);
  while (m.find()) {

    int start = m.start(0);
    int end = m.end(0);
    result.add(m.group());
    //System.out.println(result); printing inside and so first u add 1 then 2 then 3.
  }
}

System.out.println(result);//Move here
if(!result.isEmpty()){//result != null is redundant. You have already initialized.
  System.out.println("Last element is:" + result.get(result.size() - 1));
}

关于java - 如何将 ArrayList 中的最后一个元素存储到另一个 ArrayList (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53094746/

相关文章:

java - 使用@JsonFormat时如何配置自定义错误消息?

java - 业务逻辑和数据库存储的单独数据表示

Java::在运行时获取参数化类型名称

java - JTable 未正确填充

java - 是否有用于 buildScript 依赖项的 Gradle "dependencies "任务?

java - 按年、月、日查找日期的名称

java - Xamarin 与 ECPublicKey 的 Java 文档之间的差异

java - 如何向类型层次结构中的类添加缺失的方法以允许统一处理?

java - 检查并获取对象的值

java - 另一个 Java 类路径问题