Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读入一个文件,以便对于包含特定字符串的每一行,将下面的行保存到HashMap中?_Java_Hashmap_Bufferedreader - Fatal编程技术网

Java 如何读入一个文件,以便对于包含特定字符串的每一行,将下面的行保存到HashMap中?

Java 如何读入一个文件,以便对于包含特定字符串的每一行,将下面的行保存到HashMap中?,java,hashmap,bufferedreader,Java,Hashmap,Bufferedreader,我承认这可能是一个简单的问题,但我似乎无法将我的头脑放在它周围。假设我有一个.txt文件,我正在用Java中的BufferedReader读取该文件,该文件可能如下所示: Category: Dairy Yogurt Cheese Butter Category: Vegetables Carrots Cucumbers Category: Snacks Granola Bars Trail Mix Chips Candy Pop Tarts 例如,我想创建一个名为groceries的Hash

我承认这可能是一个简单的问题,但我似乎无法将我的头脑放在它周围。假设我有一个.txt文件,我正在用Java中的BufferedReader读取该文件,该文件可能如下所示:

Category: Dairy
Yogurt
Cheese
Butter
Category: Vegetables
Carrots
Cucumbers
Category: Snacks
Granola Bars
Trail Mix
Chips
Candy
Pop Tarts
例如,我想创建一个名为groceries的HashMap,将项目映射到其各自的类别。例如:

groceries.put("item", "category");
如何读取此文件,以便跟踪哪个项目属于哪个类别,以便以有意义的方式将其放入HashMap?这是我到目前为止尝试过的一个粗略的想法。(我最初尝试使用ArrayList,但发现HashMaps可能更适合映射数据)

这也是我最初尝试的。如果需要进一步澄清,请告诉我。

这可以激发(在任何人关闭之前): 要构建的结构是映射(键值结构),而不是列表

BufferedReader in = new BufferedReader(new InputStreamReader(System.in)));
String line;
String currentCategory = "";
Map<String, String> groceries = new HashMap<>();
while ((line = in.readLine()) != null) {
    if (line.startsWith("Category: ")) {
        currentCategory = line.substring(10);
    } else {
        groceries.put(line, currentCategory);
    }
}
BufferedReader-in=新的BufferedReader(新的InputStreamReader(System.in));
弦线;
字符串currentCategory=“”;
Map groceries=new HashMap();
而((line=in.readLine())!=null){
if(第行startsWith(“类别:”){
currentCategory=行。子字符串(10);
}否则{
食品杂货.put(行,当前类别);
}
}

如果你这样做只是为了好玩或学习,那么只要你继续朝着你要去的方向走,你就会学到最多。如果这不仅仅是为了这些,我建议您将文本文件转换为JSON或XML格式。有很多资源可以将这些格式的数据直接加载到Java中。投票决定结束,因为需要更多关注。在这个问题上有不止一个正确答案
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)));
String line;
String currentCategory = "";
Map<String, String> groceries = new HashMap<>();
while ((line = in.readLine()) != null) {
    if (line.startsWith("Category: ")) {
        currentCategory = line.substring(10);
    } else {
        groceries.put(line, currentCategory);
    }
}