【问题标题】:Java Streams extract strings starting with "EXCHANGEID=" [closed]Java Streams提取以“EXCHANGEID =”开头的字符串[关闭]
【发布时间】:2017-11-10 07:54:14
【问题描述】:

我有以下文件:

  1. |IRIS.CLIENTID=CONTRALI_C|IRIS.EXCHANGEID=XPAR|ISINCODE=FR0011898584|

  2. IRIS.EXCHANGEID=NYSE|ISINCODE=FR0011898584|

  3. _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);
    

    【讨论】:

    • 非常感谢!这很好用!
    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2016-12-21
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    相关资源
    最近更新 更多