如何获取文件的特定子字符串?

时间:2017-04-03 23:50:37

标签: java file substring

我有一个名为txt的{​​{1}}文档,其中包含以下内容:

data.txt

我想解析上面的文件以获取进行Account Name: Joe Account #: 50 Account Balance: $105.0 Check #: 110 的信息。例如,如果我要抓取:,我希望该方法返回字符串Account Name

我写了一个方法Joe,如下所示,但是效果不正常。

请注意get(String target)是我想要获取内部内容的字段。将上面的示例与target

一起使用

Account Name(返回)getValue("Account Name")

"Joe"

2 个答案:

答案 0 :(得分:0)

// Call this method for a required target
public static String getKey(String target) {
    Map<String, String> keyValueMap = loadKeyValueMap();
    return keyValueMap.get(target);
}

//load the keys and values only once from your input data file.
public static Map<String, String> loadKeyValueMap()
{
    File file = new File("data.txt");
    Scanner reader = null;
    try
    {
        reader = new Scanner(file);
    } catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }

    Map<String, String> map = new HashMap<>();

    while (reader.hasNextLine())
    {
        String nextLine = reader.nextLine();
        String[] split = nextLine.split(":");
        if (split.length() >= 2) map.put(split[0].trim(), split[1].trim());
        else break;
    }
    return map;
}

答案 1 :(得分:0)

你可以试试这个:

while (reader.hasNextLine()) {
        String text = reader.nextLine().trim();
        if (text.startsWith(target)) {
            String result = text.substring(target.length()+2);
            return result;
        }
    }

其余的你可以删除。

如果没有匹配,你只需要在最后添加一个return语句。