Java Lambda高效转换字符串到Map并安全获取指定值
使用Java 8的Stream API和Lambda表达式可以高效地将字符串转换为Map,并安全地获取指定键的值,避免出现空指针异常。
代码示例:
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String input = '100001|30,100002|45';
Map<String, String> map = new HashMap<>();
String[] keyValuePairs = input.split(',');
for (String keyValuePair : keyValuePairs) {
String[] keyValue = keyValuePair.split('\\|');
map.put(keyValue[0], keyValue[1]);
}
int value = Integer.parseInt(map.getOrDefault('100005', '0'));
System.out.println(value);
}
}
代码解释:
- 将输入字符串
input按照逗号分隔符','拆分成多个键值对,存储在keyValuePairs数组中。 - 遍历
keyValuePairs数组,将每个键值对按照竖线分隔符'|'拆分成键和值,并存储在map中。 - 使用
map.getOrDefault('100005', '0')获取键为'100005'的值,如果不存在则返回默认值'0'。 - 将获取到的值转换为int类型,并输出。
注意:
- 如果输入字符串中的键值对格式不正确,或者要查找的键不存在,将返回默认值0。
- 为了更安全地处理可能为空的值,可以使用
Optional类,而不是直接使用getOrDefault方法。
总结:
通过使用Java 8的Stream API和Lambda表达式,可以轻松地将字符串转换为Map,并安全地获取指定键的值,避免出现空指针异常。这种方法简洁高效,易于理解和维护。
原文地址: https://www.cveoy.top/t/topic/pkLP 著作权归作者所有。请勿转载和采集!