评估用户表达式

时间:2013-03-12 05:26:53

标签: c# asp.net expression

我正在开发一个有文本框的Web应用程序。用户输入条件以显示“字符串”的特定颜色。该字符串包含一些整数值。

User指定字符串值的条件,如下所示

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

这是一个条件。这就像if,elseif,else条件。用户只能指定if,否则就像这样的条件

>60:"Blue"
:"White"

(这意味着如果字符串值大于60,则将“Blue”作为字符串的颜色,否则“White”是字符串的颜色)

我必须根据在每个字符串的文本框中输入的上述条件来评估字符串的颜色。有数千个带有值的字符串,用户将为每个字符串输入这样的表达式。

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分: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])}
   }
}

这是基本的伪代码。您可以为“&lt;”定义常量和“&gt;” 。此外,您可能需要在输入错误的情况下进行一些异常处理。

答案 1 :(得分:0)

请参阅Shunting Yard算法,您需要有类似的内容