gpt4 book ai didi

java - 我有一个输入列表,必须将其转换为 Java 中定义的格式

转载 作者:行者123 更新时间:2023-12-02 09:06:00 26 4
gpt4 key购买 nike

不确定以下面的格式获取此列表的最佳方法。请建议在 Java 中获取此格式的更好方法。下面的列表也是动态的。有时该值可能高达 10 或更多

List<String> list = Arrays.asList("ABC", "DEF", "GHI");

现在我们希望上面的列表打印如下 -

[{"key" : "ABC"}, {"key" : "DEF"}, {"key" : "GHI"}]

我尝试使用如下所示的 MultiMap

Multimap<String, String> multimap = ArrayListMultimap.create();

multimap.put("key", "ABC");
multimap.put("key", "DEF");
multimap.put("key", "GHI");

打印类似的值

{key=[ABC, DEF, GHI]}

最佳答案

您可以访问底层条目结构multimap.entries()并根据需要格式化字符串。

multimap.entries().stream()
.map(entry -> String.format("{\"%s\": \"%s\"}", entry.getKey(), entry.getValue()))
.collect(Collectors.toList()));

ernest_k 已经提供了一些在评论部分获取所需字符串的好方法。您可以通过编写可以获取 key 的自定义类来扩展这些解决方案。

List<String> list = Arrays.asList("ABC", "DEF", "GHI");
MapKeyToValues keyValues = new MapKeyToValues("key", list); // change key as per your need
System.out.println(keyValues);
String formattedString = keyValues.toString();

自定义转换器类。

public class MapKeyToValues {
private final String key;
private final List<String> list;

public MapKeyToValues(String key, List< String > list) {
this.key = key;
this.list = list;
}

@Override
public String toString( ) {
// need to handle null cases here
return list.stream()
.map(value -> String.format("{\"%s\" : \"%s\"}", key, value))
.collect(Collectors.toList()).toString();
}
}

关于java - 我有一个输入列表,必须将其转换为 Java 中定义的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59807447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com