我正在编写一个逻辑来检查特定关键字后面是否有任何数字("顶部"在这种情况下)。
String test = "top 10 results";
String test = "show top 10 results";
我使用模式匹配查找来实现它的工作。
public static boolean hasNumberafterTOP(String query)
{
boolean hasNumberafterTOP = false;
Pattern pat = Pattern.compile("top\\s+([0-9]+)");
Matcher matcher = pat.matcher(query);
if(matcher.find())
{
hasNumberafterTOP = true;
numberAfterTOP=matcher.group(1);
}
return hasNumberafterTOP;
}
我有什么方法可以扩展这个检查以包含这些词。五,十,二十,三十等等?
答案 0 :(得分:1)
试试这段代码:
String keyword = "top";
Pattern p= Pattern.compile("\\d*\\s+"+Pattern.quote(keyword));
Matcher match = p.matcher(query");
match .find();
String inputInt = makeMatch.group();
System.out.println(inputInt);