Java字符串分割来实现HashMap



我在Java中有一个字符串,如下所示,我想根据下面的来分割它

String toSplit = "Apple,Fruit,10|Potato,Vegetable,15:Apple,Fruit,15|Potato,Vegetable,10|Banana,Fruit,10"

基本上,我想要从字符串到整数,从类型(Apple/Banana(到数量(10/15(等的hashmap。我想要一个这种类型的hashmap,直到":"一个用于":"直到绳子的尽头。

我如何以一种允许我实现hashmap的方式来分割字符串,以及在分割后我会把这些东西插入hashmap吗?

基本上,字符串的第一部分(直到":"(是我需要购买的东西的列表,以及数量。字符串的第二部分是我的目标列表。我需要输出每个数量的差异。

我是Java新手,如果有任何帮助,我们将不胜感激!非常感谢。

首先在:上拆分,然后在|上拆分,最后在,上拆分,如下所示:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String toSplit = "Apple,Fruit,10|Potato,Vegetable,15:Apple,Fruit,15|Potato,Vegetable,10|Banana,Fruit,10";
List<Map<String, Integer>> arrayList = new ArrayList<>();
// Split on :
String[] lists = toSplit.split(":");
for (String list : lists) {
// Split on |
String[] records = list.split("\|");
Map<String, Integer> map = new HashMap<>();
for (String record : records) {
// Split on comma
String[] parts = record.split(",");
map.put(parts[0], Integer.valueOf(parts[2]));
}
arrayList.add(map);
}
System.out.println(arrayList);
}
}

输出:

[{Potato=15, Apple=10}, {Potato=10, Apple=15, Banana=10}]

最新更新