首页 > 解决方案 > 如何从多行字符串中删除特定行

问题描述

我有下面的java字符串作为命令输出

String output = "NIC     Value\n"
                + "------  -----\n"
                + "vmn0  on   \n"
                + "vmn1  on   \n"
                + "vmn2  on   \n"
                + "vmn3  on   \n"
                + "vmn4  on";

我想从上面的字符串中删除带有破折号的第二行。我该怎么做?

我使用 contains 方法进行了尝试,但在删除第二行后它正在生成空行。

 if(output!=null && output.contains("-"))
            output = output.replace("-","");

标签: javastring

解决方案


这是您正在寻找的完整答案:

String output = "NIC     Value\n"
            + "------  -----\n"
            + "vmn0  on   \n"
            + "vmn1  on   \n"
            + "vmn2  on   \n"
            + "vmn3  on   \n"
            + "vmn4  on";

    String str = Stream.of(output.split("\n"))
                       .filter(s -> !s.contains("--"))
                       .collect(Collectors.joining("\n"));

推荐阅读