gpt4 book ai didi

java - 使用 Java 8 将字符串转换为对象列表

转载 作者:搜寻专家 更新时间:2023-11-01 02:00:59 24 4
gpt4 key购买 nike

我有一个字符串

"Red apple, blue banana, orange".

我怎么能先用“,”拆分它然后在两个单词之间添加“_”(例如Red_apple而不是orange)并将所有字母大写。我阅读了几篇文章并找到了一个解决方案,但它只有拆分部分,我如何添加“_”并将所有字母大写? :

   Pattern pattern = Pattern.compile(", ");
List<Fruit> f = pattern.splitAsStream(fruitString)
.map(Fruit::valueOf)
.collect(Collectors.toList());

Fruit 是一个枚举对象。所以基本上,如果我能够将字符串转换为某种格式,并且我能够根据枚举名称获得枚举对象。

最佳答案

使用map(...) 方法对原始String 进行转换。不是通过方法引用调用 Fruit::valueOf,而是在 map(...) 内的空间拆分每个字符串,并在恰好得到两个部分时构造一个组合字符串:

List<Fruit> f = pattern.splitAsStream("Red apple, blue banana, orange")
.map(s -> {
String[] parts = s.split(" ");
String tmp = parts.length == 2
? parts[0]+"_"+parts[1]
: s;
return Fruit.valueOf(tmp.toUpperCase());
}).collect(Collectors.toList());

Demo.

如果您需要对结果执行任何其他转换,您可以在 return 语句之前的同一个 lambda 代码块中执行它们。

关于java - 使用 Java 8 将字符串转换为对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47293825/

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