Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于索引或使用lambda修改最后一个数组值的Java流过滤_Java_String_Lambda_Filtering_Java Stream - Fatal编程技术网

基于索引或使用lambda修改最后一个数组值的Java流过滤

基于索引或使用lambda修改最后一个数组值的Java流过滤,java,string,lambda,filtering,java-stream,Java,String,Lambda,Filtering,Java Stream,我有下面代码中提到的字符串数组。我正在消除每个元素中存在的双引号,但我必须对最后一个索引执行额外的操作,因为我知道还有额外的双引号 String array[] = new String[]{"\"Awesome Systems, Inc. - 357", "\"Awesome Systems, Inc - 357", "\"wpe_stage\""}; Arrays.stream(array).map((str) -> (str = str.trim())

我有下面代码中提到的字符串数组。我正在消除每个元素中存在的双引号,但我必须对最后一个索引执行额外的操作,因为我知道还有额外的双引号

    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

您可以使用
replaceAll
一次性替换双引号的所有实例,只要它们位于元素的开头或结尾:

Arrays
    .stream(array)
    .map((str) -> (str = str.trim()).replaceAll("^\"|\"$", ""))
    .forEach(System.out::println);
输出

Awesome Systems, Inc. - 357
Awesome Systems, Inc - 357
wpe_stage

提示:依赖字符串中的直接“索引”通常不是一个好主意。这使得您的代码很容易在输入数据中发生更改。所以:尽量避免这种情况;而是编写健壮的代码。。。就像Mena为你写的一样。@GhostCat谢谢:)@Mena你也写下了我本该写的东西。。。如果我能更多地了解溪流,并能在同一时间把它记录下来;-)。。。因此,投票和欢呼的内容是我在这里可以做的最低限度@GhostCat是的,但我偏爱恭维,因此感谢:D也说实话,我认为stream/lambda知识只能带你走这么远。如果不执行一些严肃的技巧,您就无法知道当前元素的索引(我不确定我在这里是否准确),因此需要解决方法。@GhostCat感谢您的宝贵建议!提示:依赖字符串中的直接“索引”通常不是一个好主意。这使得您的代码很容易在输入数据中发生更改。所以:尽量避免这种情况;而是编写健壮的代码。。。就像Mena为你写的一样。@GhostCat谢谢:)@Mena你也写下了我本该写的东西。。。如果我能更多地了解溪流,并能在同一时间把它记录下来;-)。。。因此,投票和欢呼的内容是我在这里可以做的最低限度@GhostCat是的,但我偏爱恭维,因此感谢:D也说实话,我认为stream/lambda知识只能带你走这么远。如果不执行一些严肃的技巧,您就无法知道当前元素的索引(我不确定我在这里是否准确),因此需要解决方法。@GhostCat感谢您的宝贵建议!