Java 如何将流中的一个字符串映射到另一个字符串?

Java 如何将流中的一个字符串映射到另一个字符串?,java,list,dictionary,filter,java-stream,Java,List,Dictionary,Filter,Java Stream,我在返回以下流字符串时遇到了一个大问题。你能帮忙吗 以下是我的清单: List<String> dest = Arrays.asList( "bleble bleble 2000", "WAW HAV 1200", "xxx yyy 789", "WAW DPS 2000", "WAW HKT 1000" ); 这对于(..)是必需的。您可以使用map()来spli字符串,并获取所需的元素(第二个和第三个): List result=dest .stream()

我在返回以下流字符串时遇到了一个大问题。你能帮忙吗

以下是我的清单:

List<String> dest = Arrays.asList(
  "bleble bleble 2000",
  "WAW HAV 1200",
  "xxx yyy 789",
  "WAW DPS 2000",
  "WAW HKT 1000"
);
这对于(..)是必需的。

您可以使用
map()
来spli字符串,并获取所需的元素(第二个和第三个):

List result=dest
.stream()
.filter(x->x.startsWith(“WAW”))
.map(x->{
字符串[]行=x.split(“”);
返回String.format(“至%s-欧元价格:%s”,
第[1]行,
整数.parseInt(第[2]行]*ratePLNvsEUR);
})
.collect(Collectors.toList());

你想做什么?或者
映射(s->split(“”).map(arr->String.format(“to%s-欧元价格:%s”,第[1]行),Integer.parseInt(第[2]行]*ratePLNvsEUR))
*我在之前的评论中犯了简单的复制粘贴错误。相反,或者
arr
它应该是
row
,因为这就是数组在
格式中的引用方式。
enter codedouble ratePLNvsEUR = 4.30;
List<String> result = dest
    .stream()
    .filter(x -> x.startsWith("WAW"))
    //.map() <- how to change "WAW HAV 1200" into "HAV - price in EUR:  5160"
    .collect(Collectors.toList());

for (String r : result) System.out.println(r); 
List<String> result = dest
        .stream()
        .filter(x -> x.startsWith("WAW"))
        .map(x -> {
            String[] row = x.split(" ");

            return String.format("to %s - price in EUR:    %s",
                    row[1],
                    Integer.parseInt(row[2]) * ratePLNvsEUR);
        })
        .collect(Collectors.toList());