【问题标题】:How to convert String to string set in java如何将字符串转换为java中的字符串集
【发布时间】:2021-01-06 15:30:36
【问题描述】:

我有一个返回类型为字符串的方法,下面是正在检索的字符串,应该如何将此字符串转换为集合,以便我可以遍历字符串集合。

["date:@value2","lineofbusiness:@value3","pnrno:@value1","reason:@value4"]

如果我尝试使用 String[] 进行拆分,则结果不是预期的,我必须获取这些单独的值,例如 date:@value2 并且必须拆分它以完成我的其余逻辑。

如何将上面的字符串转换成下面的字符串集合

Set<String> columnmapping = new HashSet<String>();

【问题讨论】:

  • "我有一个返回类型为以下字符串的方法" - 这不是String,而是String[](或Collection&lt;String&gt;)。要将String[] 转换为Set&lt;String&gt;,我们可以使用Set.of(...)
  • 这能回答你的问题吗? Java: How to convert String[] to List or Set
  • 这是一个来自 AWS DynamoDB 的字符串集,我只检索整个字符串集作为字符串
  • 我的方法返回类型是字符串

标签: java spring-boot hash split


【解决方案1】:

除了接受的答案之外,还有许多选项可以使用标准 Java Streams(假设 Java >= 8)将其放在“单行”中,并且没有任何外部依赖项,例如:

String s =
"[\"date:@value2\",\"lineofbusiness:@value3\",\"pnrno:@value1\",\"reason:@value4\"]";
Set<String> strings = Arrays.asList(s.split(",")).stream()
                            .map(s -> s.replaceAll("[\\[\\]]", ""))
                            .collect(Collectors.toSet());

【讨论】:

    【解决方案2】:

    我使用Apache Commons 进行字符串操作。以下代码有帮助。

    String substringBetween = StringUtils.substringBetween(str, "[", "]").replaceAll("\"", ""); // get rid of bracket and quotes
    String[] csv = StringUtils.split(substringBetween,","); // split by comma
    Set<String> columnmapping  = new HashSet<String>(Arrays.asList(csv));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多