在 Java 中从行首匹配一个单词

我有以下命令的输出:


NAME         PLATFORM   STATUS

----         --         ------

XAB           Windows    Yes

ABB          Windows    Yes

AB           Windows    No

ABAB        Windows    Yes

其中 name 列具有唯一的字符串。


我想找出名称列中是否存在输入字符串,使其与输入完全匹配。例如,如果我正在搜索 A 或 B,它将返回 false,AB 将返回 true。


我试过以下返回false:


Arrays.stream(str.split("\n"))

            .filter(line -> line.matches("^AB "))

            .findFirst()

            .isPresent()

string.contains() 似乎不合适,因为它不会进行严格的模式检查。


你们可以为此使用流建议一个合适的单行解决方案吗?谢谢。


森栏
浏览 103回答 1
1回答

杨魅力

要检查一行是否以您可以使用的值开头String#startsWith:line.startsWith("AB ")或者,如果您打算使用正则表达式,请.matches记住它必须匹配整行(因此,添加.*是必要的,因为它将尽可能多地匹配除换行符以外的任何 0+ 个字符):line.matches("AB .*")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java