gpt4 book ai didi

java - 如何将属性文件中的空值添加到 map

转载 作者:行者123 更新时间:2023-11-30 05:23:05 27 4
gpt4 key购买 nike

我有一个properties文件,其内容如下

test=uri=someURI,uname=username,pwd=

参数之间用逗号分隔,键和值之间用=分隔我使用 ResourceBundle.getBundle("fileName") 读取文件,并使用 getString("test") 方法读取 test 的条目>.

我在这里尝试的是使用以下方法获取 Map 内由 = 分隔的字符串。

public static Map<String, String> configMap(String entry) {
return Arrays.stream(rb.getString(entry).split(",")).map(e -> e.split("="))
.collect(Collectors
.toMap(keyValue -> keyValue[0].trim(), keyValue -> keyValue[1].trim(), (a, b) -> b));
}

不过这些方法的工作方式很奇怪。在属性文件中,如果我为 pwd 分配一个空格作为值,它工作正常,但如果我没有为 pwd 分配任何内容,甚至没有空格,它会给我出现以下错误

java.lang.ArrayIndexOutOfBoundsException: 1

Map 也需要接受 null 值,我该如何实现?

最佳答案

您可以检查 keyValue 的长度数组,如果它没有第二个元素 - 放置一个空 StringMap .

不幸的是,你不能输入 null Map 中的值当使用Collectors.toMap()时.

return Arrays.stream(rb.getString(entry).split(",")).map(e -> e.split("="))
.collect(Collectors
.toMap(keyValue -> keyValue[0].trim(),
keyValue -> keyValue.length > 1 ? keyValue[1].trim() : "",
(a, b) -> b));

关于java - 如何将属性文件中的空值添加到 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59194719/

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