我有一个名为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"
答案 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语句。