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

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


这是我的清单:


List<String> dest = Arrays.asList(

  "bleble bleble 2000",

  "WAW HAV 1200",

  "xxx yyy 789",

  "WAW DPS 2000",

  "WAW HKT 1000"

);

我怎样才能返回这样的字符串: 

//to HKT - price in EUR:    4300

//to HAV - price in EUR:    5160

//to DPS - price in EUR:    8600


在直播?


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); 

这对于 (..) 是必需的。


慕田峪7331174
浏览 87回答 1
1回答

慕后森

您可以使用map()拆分字符串,并获取所需的元素(第二个和第三个):List<String> result = dest&nbsp; &nbsp; &nbsp; &nbsp; .stream()&nbsp; &nbsp; &nbsp; &nbsp; .filter(x -> x.startsWith("WAW"))&nbsp; &nbsp; &nbsp; &nbsp; .map(x -> {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String[] row = x.split(" ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return String.format("to %s - price in EUR:&nbsp; &nbsp; %s",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row[1],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Integer.parseInt(row[2]) * ratePLNvsEUR);&nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.toList());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java