gpt4 book ai didi

java - 确定字符串是否仅包含允许值的最快方法?

转载 作者:行者123 更新时间:2023-11-30 08:29:31 24 4
gpt4 key购买 nike

我正在尝试确定实现此代码的最快方法是什么:

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 实现的额外荣誉

最佳答案

我的快速但不明确的解决方案

// encapsulate this into a class and do once; perhaps use a static initializer
boolean[] allowed = new boolean[256]; // default false
allowed[32] = true;
allowed['a'] = true;
// fill all allowed characters
allowed['Z'] = true;

// the check
for (int n=0,len=str.length(); n<len; n++) {
char ch = str.charAt(n);
if (ch>255 || !allowed[ch]) {
return false;
}
}
return true;

可能需要一些额外的转换,但我希望这个想法很清楚。

关于java - 确定字符串是否仅包含允许值的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19386747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com