public enum OPERATORS {
MUL("*"), ADD("+"), SUB("-"), DIV("/")
}
和一个字符串
s = A2 B4 * C5 /
我如何检查是否s
有其中之一OPERATORS
?
public enum OPERATORS {
MUL("*"), ADD("+"), SUB("-"), DIV("/")
}
和一个字符串
s = A2 B4 * C5 /
我如何检查是否s
有其中之一OPERATORS
?
假设 getOperatorSymbol() 在您的枚举中实现
for (OPERATORS op: OPERATORS.values()) {
if(s.contains(op.getOperatorSymbol())
{
//your code
}
}
如何检查 s 是否有操作员之一?
你必须以某种方式对其进行编码。您正在搜索的字符串不是enum
值的名称。它们存储在自定义属性中。因此,您必须手动提取字符串,然后在目标字符串中搜索每个字符串。
有多种方法可以做到这一点;例如
您可以简单地遍历 OPERATOR 枚举值,提取每个操作符字符串并针对您的输入字符串进行测试;请参阅@pangea 的答案。
您可以使用循环构建一个匹配任何运算符字符串的正则表达式,然后使用该正则表达式匹配该字符串。如果性能是一个真正的问题并且您可以分摊创建正则表达式的成本,这将是一个好方法;即只做一次,并多次重复使用正则表达式。(但如果性能不是问题,那么这种方法的额外复杂性是没有保证的。)