栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检查字符串的最快方法是Java中的字母数字

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检查字符串的最快方法是Java中的字母数字

我已经编写了使用正则表达式(根据其他答案)与不使用正则表达式进行比较的测试。在运行Java 1.6的四核OSX10.8计算机上进行的测试

有趣的是,使用正则表达式比手动迭代字符串要慢5到10倍。此外,该

isAlphanumeric2()
功能比的速度略快
isAlphanumeric()
。一种支持允许扩展Unipre数字的情况,另一种支持仅允许标准ASCII数字的情况。

public class QuickTest extends TestCase {    private final int reps = 1000000;    public void testRegexp() {        for(int i = 0; i < reps; i++) ("ab4r3rgf"+i).matches("[a-zA-Z0-9]");    }public void testIsAlphanumeric() {    for(int i = 0; i < reps; i++)        isAlphanumeric("ab4r3rgf"+i);}public void testIsAlphanumeric2() {    for(int i = 0; i < reps; i++)        isAlphanumeric2("ab4r3rgf"+i);}    public boolean isAlphanumeric(String str) {        for (int i=0; i<str.length(); i++) { char c = str.charAt(i); if (!Character.isLetterOrDigit(c))     return false;        }        return true;    }    public boolean isAlphanumeric2(String str) {        for (int i=0; i<str.length(); i++) { char c = str.charAt(i); if (c < 0x30 || (c >= 0x3a && c <= 0x40) || (c > 0x5a && c <= 0x60) || c > 0x7a)     return false;        }        return true;    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609595.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号