gpt4 book ai didi

java - 字符串标记化以删除一些数据

转载 作者:行者123 更新时间:2023-12-02 00:10:35 25 4
gpt4 key购买 nike

我有一个像这样的字符串:

1 | 2 | 3 | 4 | 5 | 6 | 7 |  |  |  |  |  |  |  |

字符串也可能有更多/更少的数据。我需要删除 | 并仅一一获取数字。

最佳答案

Guava 的Splitter摇滚!

String input = "1 | 2 | 3 | 4 | 5 | 6 | 7 | | | | | | | |";
Iterable<String> entries = Splitter.on("|")
.trimResults()
.omitEmptyStrings()
.split(input);

如果你真的想变得更奇特:

Iterable<Integer> ints = Iterables.transform(entries, 
new Function<String, Integer>(){
Integer apply(String input){
return Integer.parseInt(input);
}
});

虽然您绝对可以使用正则表达式方法或 String.split,但我认为使用 Splitter 不太容易出错,并且更具可读性和可维护性。您可能会说 String.split 可能更有效,但由于无论如何您都必须进行所有修剪和检查空字符串,所以我认为它可能会更有效。

关于transform的一个评论,它根据需要进行计算,这可能很棒,但也意味着可以对同一元素进行多次变换。因此我建议像这样一次性执行所有计算。

Function<String, Integer> toInt = new Function...
Iterable<Integer> values = Iterables.transform(entries, toInt);
List<Integer> valueList = Lists.newArrayList(values);

关于java - 字符串标记化以删除一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894882/

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