仅将特定文本从文件添加到数组列表

时间:2013-04-17 03:18:00

标签: java arraylist text-files

我希望我能得到一些帮助。

这是我文件中的文字:

Name: John
Name: Peter
Name: Sarah
Place: New York
Place: London
Place: Hongkong

我怎样才能在以下arraylist中添加文本文件中的名称? 到目前为止,我已经......并且它在arraylist中添加了所有内容,包括地方!

private ArrayList<Name> names = new ArrayList<>();

public void load(String fileName) throws FileNotFoundException {
    String text;
    try {
         BufferedReader input = new BufferedReader(new FileReader(fileName));

        while((text = input.readLine()) != null){
            text = text.replaceAll("Name:", "");
            names.add(new Name(text));
        }
    }
    catch (Exception e) {//Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }
}

最后,它应该只在Name ArrayLIst中添加名称,如John,Peter,Sarah。

我很感激任何建议,谢谢!

2 个答案:

答案 0 :(得分:1)

尝试拆分分隔符:上的每一行,例如:

String[] parts = text.split(":");
String part1 = parts[0]; // Name
String part2 = parts[1]; // John

答案 1 :(得分:1)

添加一个if语句并使用正则表达式查找带有“Place”的字符串并将其敲除。这是最简单的方法。

但这是另一个简单的解决方案。您还可以添加更多单词,以便在if。

中使用OR运算符
while((text = input.readLine()) != null){
       //gets rid of places 
if !(a.contains("Place")){
           text = text.replaceAll("Name:", "");
           names.add(new Name(text));
         }
    }