2013-03-12 30 views
0

我正在開發一個Web應用程序,其中有一個文本框。用戶輸入條件以顯示「字符串」的特定顏色。該字符串保存一些整數值。評估用戶表達

用戶指定條件這樣的字符串值,

>30:"Red" 
<20:"Green" 
:"Yellow: 

這是一個條件。這就像if,elseif,else條件。只有當用戶可以指定,否則像這樣

>60:"Blue" 
:"White" 

(這意味着如果該字符串值大於60則得到「藍」色的字符串其他「白」是該字符串的顏色)

條件

我必須根據每個字符串的文本框中輸入的上述條件來評估字符串的顏色。有數以千計的字符串值和用戶將爲每個字符串輸入這樣的表達式。

解決此問題的最佳方法是什麼?

+0

我創建組件每個表達式並加載它們在運行時評估的表達,但因爲有這麼多的asemblies,並在運行時加載它們來評估表達領先記憶問題。 – PSR 2013-03-12 05:33:44

+1

你需要首先解析這個字符串,標記它,並建立自己的條件。 – TalentTuner 2013-03-12 05:33:48

回答

0
String input = getTextBoxInput() // get input from text box 
if(input.contains("<") || input.contains("<")) 
{ 
    if(input.contains("<")) 
    { 
     int index = input.indexOf("<"); 
     String conditionString = input.substring(index+1,input.length()); 
     // condition number is the number being compared 
     int conditionNumber = conditionString.split(":")[0]; 
     // if condition is true then get the corresponding colour 
     if(number < conditionNumber){setColor(conditionString.split(":")[1])} 
     // check if it an if else condition and do the following 
     else if(input.length()>1){ setColor(conditionString.split(":")[2])} 
    } 
} 

這是基本的僞代碼。您可以定義「<」和「>」的常量。你也可能需要做一些異常處理,以避免輸入錯誤。