它是从返回 H-6ren">
gpt4 book ai didi

java - 从 HashMap 中特定出现特殊字符的值中检索字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:02 25 4
gpt4 key购买 nike

所以我尝试检索像这样构造的 HashMap 中的值中的特定子字符串..

HashMap<ID, "Home > Recipe > Main Dish > Chicken > Chicken Breasts">

它是从返回 HashMap 的不同方法传递的

在上面的示例中,我需要检索 Chicken。

到目前为止,我已经..

public static ArrayList<String> generalize() {
HashMap<String, String> items = new HashMap<>();
ArrayList<String> cats = new ArrayList<>();
items = RecSys.readInItemProfile("PATH", 0, 1);
for(String w : items.values()) {
cats.add(w);
}

for(String w : cats) {

int e = w.indexOf('>', 1 + w.indexOf('>', 1 + w.indexOf('>')));

String k = w.substring(e+1);

System.out.print(k);

e = 0;
}
System.out.println("k" + cats);
return cats;
}

我尝试在每次迭代中使字符串 e 无效(我知道这是多余的,但只是为了测试)。

在我的数据集中,第一个 k-v 对是

3880=Home  >  Recipes  >  Main Dish  >  Pasta, 

我的输出是

Pasta

这没关系。如果超过 3x ">",它将返回所有以下类别。最好不要这样做,但如果这样做也没关系。然而,更进一步,它(似乎)随机返回

Home > Recipe

连同其余数据......我相信这发生在第六个循环。

非常感谢任何帮助..

编辑:

为了澄清,我有一个包含 3 列的 .csv 文件,而此函数中使用了 2 列(ID 和类别)。这些通过另一个类中的 read 方法传递给该函数。

我需要做的是提取每个类别的概括描述,在所有情况下都是类别规范的第三个实例(即,始终位于每个 k-v 对中的第三个和第四个“">”之间)。

我的想法是简单地将所有值放入数组列表中,并为每个值从第三个和第四个“">”之间提取一个字符串。

最佳答案

我建议使用以下 map :

Map<Integer, List> map = new HashMap<>();
String[] vals = new String[] { "HomeRecipe", "Main Dish", "Chicken",
"Chicken Breasts" };
map.put(1, Arrays.asList(vals));

然后,如果您需要使用 ID 在原始字符串中查找给定值,只需在特定位置调用 ArrayList#get() 即可。如果您根本不关心顺序,那么整数到集合的映射在这里可能更有意义。

关于java - 从 HashMap 中特定出现特殊字符的值中检索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53047044/

25 4 0
文章推荐: python - Pandas dataframe 使用 groupby 对子集进行反向排序
文章推荐: css - 仅使用 CSS 从一个点通过渐变(逐渐)从黑色过渡到另一种颜色
文章推荐: python - 试图抓取特定
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com