为什么使用useDelimiter(Pattern pattern)vs useDelimiter(String pattern)

时间:2015-06-09 18:08:43

标签: java java.util.scanner

根据java:

  

public Sc​​anner useDelimiter(String pattern)设置此扫描仪   将模式分隔为从指定String构造的模式。   调用表单useDelimiter(pattern)的此方法的行为   与调用完全相同   useDelimiter(Pattern.compile(图案))。

使用Pattern.compile(pattern)有什么好处吗?我已经读过Pattern.compile(pattern)将已编译的模式放在内存中,从而使扫描程序搜索速度更快。 useDelimiter(String pattern)还会将模式放在内存中吗?

简而言之,他们真的表现得一模一样吗?

1 个答案:

答案 0 :(得分:1)

useDelimiter(String)可能比useDelimiter(Pattern)更有效,因为它不仅可以像Pattern.compile(String)那样编译模式,而且还可以缓存多达7种编译模式,只需查找它们即可。但是,如果您经常使用超过7种模式,那么您将获得缓存流失,这可能会降低性能,因此您最好自己编译和缓存模式。