我正在尝试确定实现此代码的最快方法是什么:
Pattern ID_REGEX = Pattern.compile( "[A-Za-z0-9_\\-.]+" );
boolean match = ID_REGEX.matcher( id ).matches();
if ( !match ) throw new IllegalArgumentException("Disallowed character in ID");
鉴于 ID_REGEX 是恒定的,我会假设像 BitSet 或允许值的数组是实现这一点的最快方法,甚至可能只是一个巨大的 if 语句。
请注意,搜索是针对 A-Za-z,而不是Character.isLetter。
OSS 实施的额外荣誉