【问题标题】:Java Streams extract strings starting with "EXCHANGEID=" [closed]Java Streams提取以“EXCHANGEID =”开头的字符串[关闭]
【发布时间】:2017-11-10 07:54:14
【问题描述】:
我有以下文件:
-
|IRIS.CLIENTID=CONTRALI_C|IRIS.EXCHANGEID=XPAR|ISINCODE=FR0011898584|
-
IRIS.EXCHANGEID=NYSE|ISINCODE=FR0011898584|
-
_C|IRIS.EXCHANGEID=ALXP|ISINCODE=FR0011898584
有多行(我只提取了一小部分)。
我想使用 Java Streams 提取以 "EXCHANGEID=" 开头的每个字符串并在控制台上打印。
所以我希望我的输出是这样的:
XPAR 纽约证券交易所 ALXP
【问题讨论】:
标签:
java
string
parsing
lambda
java-stream
【解决方案1】:
好吧,如果您要打印的元素具有固定长度(在您的示例中它们的长度似乎为 4),您可以这样写:
Files.lines(Paths.get(fileName))
.map(s->{
int index = s.indexOf("EXCHANGEID=");
return index>=0?s.substring(index+11,index+15):null;
})
.filter(Objects::nonNull)
.forEach(System.out::println);