有人可以幫我解析一個java字符串中的整數值和運算符運算符。如何從字符串中解析某些標記?
對於前:
String rule = "itemCount < 10 and itemCount >= 20";
從規則的字符串我需要檢索,<, 10, >= and 20
然後將顯示在JSP。
有人可以幫我解析一個java字符串中的整數值和運算符運算符。如何從字符串中解析某些標記?
對於前:
String rule = "itemCount < 10 and itemCount >= 20";
從規則的字符串我需要檢索,<, 10, >= and 20
然後將顯示在JSP。
for (int i =0; i < rule.length; ++i) {
if (rule[i] == "<") {
// Code for retrieving <
} else if (rule[i] == ">=")
// Code for retrieving >=
} else {
tryParse(rule, i);
}
}
的TryParse是將遞歸地嘗試解析整數直到連續數字最大的序列中發現和更新的我
您正嘗試在'char'上調用'equals()'。這是行不通的。 – 2011-12-26 15:49:50
我只是提出一個邏輯,如果他們不工作,你可以適應這些方法 – 2011-12-26 15:59:37
現在快樂與此編輯? – 2011-12-26 16:00:24
值的函數做一個正則表達式的幫助嗎? 也許是這樣的:
(\w+) (<|<=|==|>|>=) (\w+) (\w+) (\w+) (<|<=|==|>|>=) (\w+)
(可以肯定地優化)
在匹配時對您的字符串這個表達式,你應該得到7組,內容如下:
1:ITEMCOUNT
2:<
3:10
4:和
5:ITEMCOUNT
6:> =
7:20
參見Pattern Class documentation的更多細節。
但總的來說,我不確定這是你想要做的。
也許它更好地切換到更抽象的方式來定義您的表達,而不是寫入一個字符串。
什麼是這樣的:
Rule rule = Rule.AND(
Rule.SMALLER(itemCount, 10),
Rule.GREATER_OR_EQUAL(itemCount, 20)
);
boolean result = rule.getResult();
謝謝Micha。您能否讓我知道,在哪個包規則類可用? – Hemanth 2011-12-26 16:42:29
怎麼樣 '和' 運營商?這些規則是否可以有其他操作員總是有兩個比較? – Groo 2011-12-26 15:22:46
嗨,Groo,我不感興趣得到「和」。我只需要< , 10, > =,20 – Hemanth 2011-12-26 15:25:35
爲什麼以及在哪裏需要這樣一個概念來實現? – Lion 2011-12-26 15:27:46