代码之家  ›  专栏  ›  技术社区  ›  S.K.

在Java中从行首匹配单词

  •  -1
  • S.K.  · 技术社区  · 6 年前

    我有以下命令输出:

    NAME         PLATFORM   STATUS
    ----         --         ------
    XAB           Windows    Yes
    ABB          Windows    Yes
    AB           Windows    No
    ABAB        Windows    Yes
    

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

    我想知道name列中是否存在一个输入字符串,以便它与输入完全匹配。例如,如果我搜索A或B,它将返回false,AB将返回true。

    我尝试了以下返回false的方法:

    Arrays.stream(str.split("\n"))
                .filter(line -> line.matches("^AB "))
                .findFirst()
                .isPresent()
    

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Wiktor Stribiżew    6 年前

    检查行是否以可以使用的值开头 String#startsWith :

    line.startsWith("AB ")
    

    或者,如果您计划使用正则表达式,请使用 .matches 请记住,它必须匹配整行(因此,添加 .* 是必需的,因为它将尽可能多地匹配除换行符以外的任何0+字符):

    line.matches("AB .*")