Java Streams提取以" EXCHANGEID ="开头的字符串。

时间:2017-11-10 07:54:15

标签: java string parsing lambda java-stream

我有以下文件:

  
      
  1. | IRIS.CLIENTID = CONTRALI_C | IRIS的交换ID = XPAR |。ISINCODE = FR0011898584 |

  2.   
  3. IRIS的交换ID = NYSE |。ISINCODE = FR0011898584 |

  4.   
  5. _C | IRIS的交换ID = ALXP |。ISINCODE = FR0011898584

  6.   

有多行(我只提取了一个小部分)。 我想提取以" EXCHANGEID ="开头的每个字符串;使用Java Streams并在控制台上打印。

所以我希望我的输出像:

XPAR NYSE ALXP

1 个答案:

答案 0 :(得分:0)

好吧,如果您要打印的元素具有固定长度(在您的示例中它们似乎长度为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);