【发布时间】:2017-12-16 06:12:36
【问题描述】:
Pattern p = Pattern.compile(".s");
Matcher m = p.matcher("as");
boolean b = m.matches();
还有:
boolean b3 = Pattern.matches(".s", "as");
我想知道这两个声明有什么区别?
> mathches()是Matcher类方法Pattern怎么调用呢?
【问题讨论】:
Pattern p = Pattern.compile(".s");
Matcher m = p.matcher("as");
boolean b = m.matches();
还有:
boolean b3 = Pattern.matches(".s", "as");
我想知道这两个声明有什么区别?
> mathches()是Matcher类方法Pattern怎么调用呢?
【问题讨论】:
matches() 是Pattern 类中的static 方法,它调用Matcher 中的matches() 方法。这是来源code:
public static boolean matches(String regex, CharSequence input) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
return m.matches();
}
【讨论】:
Pattern 中的一种方法调用Matcher 中的一种方法。
看Pattern.matches的实现:
public static boolean matches(String var0, CharSequence var1) {
Pattern var2 = compile(var0);
Matcher var3 = var2.matcher(var1);
return var3.matches();
}
你看到后者只是更冗长的第一个 sn-p 的一种方便方法。
【讨论】: