我有一个字符串数组,如下面的代码中提到的。我正在消除每个元素中存在的双引号,但我必须对最后一个索引执行额外的操作,因为我知道还有额外的双引号。
String array[] = new String[]{"\"Awesome Systems, Inc. - 357", "\"Awesome Systems, Inc - 357", "\"wpe_stage\""};
Arrays.stream(array).map((str) -> (str = str.trim())
.substring(1, str.length()))
.forEach(System.out::println);
我得到的是这样的输出-
Awesome Systems, Inc. - 357
Awesome Systems, Inc - 357
wpe_stage"
所需的输出类似于 -
Awesome Systems, Inc. - 357
Awesome Systems, Inc - 357
wpe_stage
如何使用流功能或 lambda 来做到这一点?有没有办法选择流中的最后一个索引或可以进行基于索引的任何过滤?
最佳答案
您可以使用 replaceAll
一次性替换双引号的所有实例,前提是它们位于元素的开头或结尾:
Arrays
.stream(array)
.map((str) -> (str = str.trim()).replaceAll("^\"|\"$", ""))
.forEach(System.out::println);
输出
Awesome Systems, Inc. - 357
Awesome Systems, Inc - 357
wpe_stage
关于java - 使用 lambda 根据索引或最后一个数组值修改对 Java Stream 进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40612575/