2013-03-12 48 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])} 
    } 
} 

这是基本的伪代码。您可以定义“<”和“>”的常量。你也可能需要做一些异常处理,以避免输入错误。