【问题标题】:Is there any java function act like 'LIKE' statement in SQL?是否有任何 java 函数像 SQL 中的“LIKE”语句一样?
【发布时间】:2015-09-15 06:31:24
【问题描述】:

我想在 java 中找到一个函数,它可以检查字符串是否包含模式“%A%B%”,就像 SQL 中的“LIKE”语句一样。如果字符串包含模式,此函数将返回 true,否则返回 false。

谁能推荐任何类、函数或代码行?谢谢!

【问题讨论】:

  • 正则表达式?
  • 正则表达式:用.*代替%.代替_
  • '.' 做什么和'*'是什么意思?

标签: java sql-like


【解决方案1】:

正则表达式。在此处了解更多信息:https://docs.oracle.com/javase/tutorial/essential/regex/

调用它的最简单方法是使用String.matches(String regex)

如果你想更频繁地检查同一个正则表达式,最好预编译它并使用Pattern

然后是一个典型的调用序列

 Pattern p = Pattern.compile(".*A.*B.*"); // you keep this stored for re-use
 Matcher m = p.matcher("BARBARIAN");
 boolean b = m.matches();

有一个很好的Online Regex Tester and Debugger 工具,您可以在其中检查您的正则表达式。

【讨论】:

  • 这里建议的正则表达式与LIKE "%A%B%" 不匹配。例如,它不会匹配“BARBARIAN”,而 SQL 表达式会。
【解决方案2】:
Pattern.compile(".*A.*B.*").matches(input)

如果 input 包含一个 A 后跟一个 B,则返回 true。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多