加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

什么是更快,正则表达式或比较 – Java

发布时间:2020-12-13 22:56:26 所属栏目:百科 来源:网络整理
导读:我有两种可能性,制作正则表达式或制作if比较. 如果比较 if (!(modoImpressao.equals("IMPRESSORA") || modoImpressao.equals("PDF") || modoImpressao.equals("AMBOS"))) 正则表达式匹配 if (!Pattern.compile("(IMPRESSORA)|(PDF)|(AMBOS)",Pattern.DOTALL)
我有两种可能性,制作正则表达式或制作if比较.

如果比较

if (!(modoImpressao.equals("IMPRESSORA") || 
   modoImpressao.equals("PDF") || modoImpressao.equals("AMBOS")))

正则表达式匹配

if (!Pattern.compile("(IMPRESSORA)|(PDF)|(AMBOS)",Pattern.DOTALL).matcher(modoImpressao).find()){
            throw new EspdNeverStopParametroInvalidoException(TspdConstMessages.IMPRIMIR_PARAMETRO_MODOIMPRESSAO_INVALIDO,"TspdImprimirNFCe");
        }

哪一个更快?

第一个片段几乎肯定会更快,因为它不必解析正则表达式并执行匹配.另一种选择是:
if (Arrays.asList("IMPRESSORA","PDF","AMBOS").contains(modoImpressao)

这应该与你的第一个片段的速度不同,但可以说更具可读性和简洁性.

正则表达式很棒,但只在需要时才使用它们.这种情况绝对不能保证使用正则表达式;你所做的只是与文字字符串进行比较.

Jamie Zawinski有一句古老的说法是这样的:

Some people,when confronted with a problem,think “I know,I’ll use regular expressions.” Now they have two problems.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读