public enum OPERATORS {
MUL("*"), ADD("+"), SUB("-"), DIV("/")
}
和String作为Java:如何知道一个字符串是否有一个ENUM存在?
s = A2 B4 * C5/
我如何检查是否s
有OPERATORS
之一吗?
public enum OPERATORS {
MUL("*"), ADD("+"), SUB("-"), DIV("/")
}
和String作为Java:如何知道一个字符串是否有一个ENUM存在?
s = A2 B4 * C5/
我如何检查是否s
有OPERATORS
之一吗?
假设getOperatorSymbol()在你的枚举实施
for (OPERATORS op: OPERATORS.values()) {
if(s.contains(op.getOperatorSymbol())
{
//your code
}
}
我如何检查是否S有运营商之一?
你必须以某种方式对它进行编码。您正在搜索的字符串不是enum
值的名称。它们存储在一个自定义属性中。所以你必须手动提取字符串,然后在每个目标字符串中搜索。
有很多方法可以做到这一点;例如
您可以简单地遍历OPERATOR枚举值,提取每个人的操作符字符串并根据您的输入字符串进行测试;请参阅@ pangea的答案。
您可以使用循环来构建一个匹配任何运算符字符串的正则表达式,然后使用该正则表达式来匹配字符串。如果性能是一个真正的问题,那么这将是一个很好的方法,您可以分摊创建正则表达式的成本;即只做一次,并重复使用正则表达式多次。 (但是,如果性能不是问题,这种方法的额外复杂性不保证。)
向我们展示'enum'声明的其余部分。特别是,保存枚举的字符串值的属性的getter。 –
你只想检查's' *是否包含* OPERATORS之一?或者你是否想将字符串解析为后缀数学表达式? –