根据java:
public Scanner useDelimiter(String pattern)设置此扫描仪 将模式分隔为从指定String构造的模式。 调用表单useDelimiter(pattern)的此方法的行为 与调用完全相同 useDelimiter(Pattern.compile(图案))。
使用Pattern.compile(pattern)
有什么好处吗?我已经读过Pattern.compile(pattern)
将已编译的模式放在内存中,从而使扫描程序搜索速度更快。 useDelimiter(String pattern)
还会将模式放在内存中吗?
简而言之,他们真的表现得一模一样吗?
答案 0 :(得分:1)
useDelimiter(String)
可能比useDelimiter(Pattern)
更有效,因为它不仅可以像Pattern.compile(String)
那样编译模式,而且还可以缓存多达7种编译模式,只需查找它们即可。但是,如果您经常使用超过7种模式,那么您将获得缓存流失,这可能会降低性能,因此您最好自己编译和缓存模式。