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之一?或者你是否想將字符串解析爲後綴數學表達式? –