0

我希望我能在这里得到一些帮助。

这是我文件中的文本:

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

例如,如何仅在以下数组列表中添加文本文件中的名称?到目前为止,我已经......它添加了数组列表中的所有内容,包括地点!

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。

我将不胜感激任何建议,谢谢!

4

2 回答 2

1

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

String[] parts = text.split(":");
String part1 = parts[0]; // Name
String part2 = parts[1]; // John
于 2013-04-17T03:21:06.867 回答
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));
         }
    }
于 2013-04-17T03:25:01.147 回答