使用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);
    }
}

代码解释:

  1. 将输入字符串input按照逗号分隔符','拆分成多个键值对,存储在keyValuePairs数组中。
  2. 遍历keyValuePairs数组,将每个键值对按照竖线分隔符'|'拆分成键和值,并存储在map中。
  3. 使用map.getOrDefault('100005', '0')获取键为'100005'的值,如果不存在则返回默认值'0'。
  4. 将获取到的值转换为int类型,并输出。

注意:

  • 如果输入字符串中的键值对格式不正确,或者要查找的键不存在,将返回默认值0。
  • 为了更安全地处理可能为空的值,可以使用Optional类,而不是直接使用getOrDefault方法。

总结:

通过使用Java 8的Stream API和Lambda表达式,可以轻松地将字符串转换为Map,并安全地获取指定键的值,避免出现空指针异常。这种方法简洁高效,易于理解和维护。


原文地址: https://www.cveoy.top/t/topic/pkLP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录