gpt4 book ai didi

java8 将字符串数组转换为映射(奇数索引为键,偶数索引为值)

转载 作者:搜寻专家 更新时间:2023-11-01 01:16:06 26 4
gpt4 key购买 nike

现在我有一个字符串数组,

String[] a= {"from","a@a.com","to","b@b.com","subject","hello b"};

来自命令行参数。

我想把它转换成 map ,

{"from":"a@a.com","to":"b@b.com","subject":"hello b"}

在 java8 中是否存在实现此目的的便捷方式?现在我的方法是

Map<String,String> map = new HashMap<>();
for (int i = 0; i < args.length; i+=2) {
String key = args[i].replaceFirst("-+", ""); //-from --> from
map.put(key, args[i+1]);
}

最佳答案

您可以使用 IntStream 迭代数组的索引(这是每次处理数组的两个元素所必需的)并使用 Collectors.toMap收集器。

IntStream 将包含输入数组中每对元素的相应索引。如果数组的长度是奇数,最后一个元素将被忽略。

Map<String,String> map = 
IntStream.range(0,a.length/2)
.boxed()
.collect(Collectors.toMap(i->a[2*i].replaceFirst("-+", ""),
i->a[2*i+1]));

关于java8 将字符串数组转换为映射(奇数索引为键,偶数索引为值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com