我在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}]