当前位置: 首页 > 知识库问答 >
问题:

将字符串转换为HashMap[复制]

督辉
2023-03-14

我有Java命令行应用程序,在启动. jar文件时使用参数。参数看起来像

--exclude parent1=child1,child2;parent2=child3;parent3 

我想将参数转换为<code>HashMap

我尝试了Streams和拆分()函数,但我无法将子字符串转换为字符串数组

Arrays.stream(gotData.split(";"))
            .map(s -> s.split("="))
            .collect(Collectors.toMap(s -> s[0], s -> s[1].split(",")));

共有1个答案

宦博雅
2023-03-14

为了解决您的问题,您必须每次检查您的数据,因为在收集部分,您尝试为不存在的parent3拆分s[1]。为了避免此问题,您可以在这样做之前检查数组的长度

Arrays.stream(gotData.split(";"))
    .map(s -> s.split("="))
    .collect(Collectors.toMap(s -> s[0], s -> {
        // If there size of array great than 1 mean there are children.
        if (s.length > 1) {
            return s[1].split(",");
        }
        // Else just return an empty array.
        return new String[0];
    }));

如果您有其他情况,可能需要在此代码中添加其他条件以避免任何类型的错误。

显示响应:

response.forEach((k, v) -> System.out.println(k + " - " + Arrays.toString(v)));

奥普特斯

parent1 - [child1, child2]
parent3  - []
parent2 - [child3]
 类似资料:
  • 问题内容: 我正在使用Java,并且有一个JSON字符串: 然后我的Java地图: 我想将来自JSONObject的所有数据存储在该HashMap中。 谁能为此提供代码?我想使用图书馆。 问题答案: 我几天前通过递归编写了这段代码。

  • 我使用的是Java,我有一个字符串是JSON: 我希望将JSONObject中的所有数据存储在HashMap中。 有人能为此提供代码吗?我想使用库。

  • 如果我有 我去拿 <代码>空 有没有一种优雅的方法可以将其更改为空字符串? 我可以做: 上下文是我将生成以下表单的字符串: 字符串myString=a“\n”b“\n”c 但我想知道是否有更好的解决方案。

  • 为什么toString方法返回jibberish?

  • 问题内容: 如何将经典字符串转换为f字符串? 输出: 所需的输出: 问题答案: f字符串是 语法 ,而不是对象类型。您不能将任意字符串转换为该语法,该语法会创建一个字符串对象,而不是相反。 我假设您想用作模板,因此只需在对象上使用方法: 如果要提供可配置的模板服务,请创建一个包含所有可以插值的字段的名称空间字典,并与调用语法一起使用以应用名称空间: 然后,用户可以在字段中的名称空间中使用任何键(或

  • 这是代码,我正在尝试将分钟数(字符串类型)转换为整数类型,但我有NumberFormatException错误,有人能帮我吗,我如何处理这种情况。谢谢