C#判断表达式是否正确

WIKESOFT
WIKESOFT 官方账号
2018-01-30 12:03:19


.net C# 判断字符串 “90>100 || 200<300” 为true或者是false



...全文
1004 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Geek-Banana 2018-02-05
  • 打赏
  • 举报
回复
            bool result;
            result = (90 > 100 || 200 < 300) ? true : false;
Jiang_Mr 2018-02-05
  • 打赏
  • 举报
回复
如果检测字符串内容就用正则,如果要判断字符串代表的表达式,那就先解析字符串,还要考虑运算符的优先级问题。
  • 打赏
  • 举报
回复
‘||’表示一个为true就是true
  • 打赏
  • 举报
回复
这个不是运算符就是或的意思 比如 你的年龄是18或19岁,,,,你就要读书
S_HB_L 2018-02-02
  • 打赏
  • 举报
回复
欢迎交流学习https://vwpan.com/down/show-1150.html
weixin_37698796 2018-02-02
  • 打赏
  • 举报
回复
true.这是“或”表达式,因为200<300是true,所以结果是true
秋的红果实 2018-01-30
  • 打赏
  • 举报
回复
表达式问题了 就事论事,写个例子,抛砖引玉,lz自己发挥

protected bool getNumResult(int n1,int n2,string operation) //调用前请检查输入参数
{
    bool result=true;
    switch(operation)
    {
        case ">":
            result = n1 > n2;
            break;

        case "<":
            result = n1 < n2;
            break;

        case ">=":
            result = n1 >= n2;
            break;

        case "<=":
            result = n1 <= n2;
            break;

        case "!=":
            result = n1 != n2;
            break;

    }

    return result;

}

protected bool getBoolResult(bool b1,bool b2,string operation)
{
    bool result = true;
    switch(operation)
    {
        case "||":
            result = b1 || b2;
            break;

        case "&&":
            result = b1 && b2;
            break;

    }
    return result;

}

//执行调用,web下测试通过
protected void Page_Load(object sender, EventArgs e)
{
    string input = "90>100 || 200<300";
    MatchCollection mColl = Regex.Matches(input, @"\s(\|\||&&|^)\s(\d+)(>|<|=|>=|<=)(\d+)");
    bool str2bool=false;

    foreach(Match m in mColl)
    {
       if(m.Groups[1].Value.ToString()=="")
       {
           str2bool = getNumResult(int.Parse(m.Groups[2].Value.ToString()), int.Parse(m.Groups[4].Value.ToString()), m.Groups[3].Value.ToString());
       }
       else
       {
           str2bool=getBoolResult(str2bool,getNumResult(int.Parse(m.Groups[2].Value.ToString()), int.Parse(m.Groups[4].Value.ToString()), m.Groups[3].Value.ToString()),m.Groups[1].Value.ToString());

       }
    }

    Response.Write(str2bool.ToString());
}
如果含有||,&&,括号等复杂表达式,还需要改进算法,我这里仅仅是举例
全栈极简 2018-01-30
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
LWHLOVECD 2018-01-30
  • 打赏
  • 举报
回复
true,||表示2个表达式中有一个为真即为真。200<300为真。

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧