gpt4 book ai didi

java - 什么更快,Regex 或 if 比较 - Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:45 25 4
gpt4 key购买 nike

我有两种可能性,制作正则表达式或制作 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.

关于java - 什么更快,Regex 或 if 比较 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052674/

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