java - 在流 java 8 中解析逗号分隔的键值对
问题描述
我有一个字符串,它是逗号分隔的键值对,其中键是唯一的,并且不会多次存在,我想将字符串拆分为仅基于一个键“s”的键值过滤并为其返回输出在本例中为“GRADE3”。
下面是示例输入字符串
String test = “s:03,g:05,st:06”;
我想在 Java 8 中拆分上面的字符串并只读键“s”的值,即“03”,并且在内部从下面的 HashMap 中读取它的值,所以基本上我想在这个例子中为 03 返回字符串“GRADE3”。
private static final Map<String, String> STUDENTS_MAP = new HashMap<>();
static {
STUDENTS_MAP.put(“01”, “GRADE1");
STUDENTS_MAP.put(“02”, “GRADE2");
STUDENTS_MAP.put(“03”, “GRADE3");
}
任何人都可以使用流在 Java 8 中提供帮助吗?
解决方案
您可以拆分字符串并过滤其流。
String test = "s:03,g:05,st:06";
String search = "s";
String res = Arrays.stream(test.split(","))
.map(s -> s.split(":"))
.filter(x -> x[0].equals(search))
.findFirst()
.map(x -> STUDENTS_MAP.get(x[1]))
.orElse(null);
System.out.println(res);
推荐阅读
- spring-boot - loadUserByUsername 不会覆盖 springboot 身份验证中的任何内容
- google-translate - 如何从谷歌翻译 api 获得罗马印地语?
- java - POJO 用于解析 HttpClient 的 HttpResponse 对象,其中包含正文中的表单编码数据
- r - R中的tesseract中的自定义.traineddata文件使用
- architecture - 在消费者端编写伪装客户端代码的权利吗?
- javascript - 我从 nodejs index.js 得到的 Javascript 不常见错误
- git - 在现有 GitHub 和 GitLab 存储库之间创建分叉关系
- sql-server - 使用 T-SQL 将文本插入文本文件
- python - 在 Openpyxl - 想要将 excel 单元格值转换为整数,同时将数据复制到 csv
- twig - RainLab.Blog 帖子列表:列出特定顶级类别下的子类别