如何从 c# 中的字符串 (a + b) 输入中获取运算符类型

本文关键字:输入 获取 类型 运算符 字符串 | 更新日期: 2023-09-27 18:33:26

例如,如果用户将输入作为 a + b,则过程应为添加两个已声明为 int a、int b 的变量

int a = 7;
int b = 8;
string formula = console.readline();

如果用户键入a + b作为公式,我们应该在a和b上添加,这就是我需要帮助的地方,用户可以使用任何二进制运算符,公式应该从用户输入中获取该运算符,请帮助

如何从 c# 中的字符串 (a + b) 输入中获取运算符类型

您尝试计算数学表达式。我建议使用 NCalc

NCalc 是 .NET 中的数学表达式计算器。NCalc 可以解析任何表达式并计算结果,包括静态或动态参数和自定义函数。

  • NCalc - 用于 .NET 的数学表达式计算器
你可以

这样做:

int a = 7;
int b = 8;
string formula = "a+b";
formula=formula.Replace("a",a.ToString()).Replace("b",b.ToString());
var calc = new System.Data.DataTable();
Console.WriteLine(calc.Compute(formula, ""));

不久前做了这个来评估这样的表达式

private static double Calc(string expression)
{
    try
    {
        var table = new System.Data.DataTable();
        table.Columns.Add("expression", string.Empty.GetType(), expression);
        System.Data.DataRow row = table.NewRow();
        table.Rows.Add(row);
        return double.Parse((string)row["expression"]);
    }
    catch (Exception)
    {
        return 0;
    }
}

此代码允许用户输入两个数字和他或她想要的运算符

Console.WriteLine("Please enter the first number");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter the operator you want to use");
            string c = Console.ReadLine() ;
            Console.WriteLine("Enter the last number");
            int b = int.Parse(Console.ReadLine());
            string formula = "acb";
            formula = formula.Replace("a", a.ToString()).Replace("b", b.ToString()).Replace("c", c.ToString());
            var calc = new System.Data.DataTable();
            Console.WriteLine(calc.Compute(formula, ""));