c# – 计算公式

我正在尝试实现一个程序,该程序从用户接收一个等式(在1行中)并输出结果.到目前为止,我已经使用indexof找到符号,然后我试图在符号的左侧和右侧找到数字的值 –

string input = "5+4+6";
            while (input.Contains('+'))
            {
                Console.WriteLine(input.IndexOf("+"));

                string position1 = input.Substring(0,input.IndexOf("+"));
                int number1 = Convert.ToInt32(position1);

                String position2 = input.Substring(2,input.IndexOf("+"));
                int number2 = Convert.ToInt32(position2);

                int sum = (number1 + number2);

我的代码的问题是我在左边说明数字并将其转换为int而在现实生活中,等式中的数字将是未知的,可以是2 4或3 5 6 4,为了简单起见,现在我试图和 –,然后/和*.

任何人都可以建议改进代码或任何帮助吗?
我知道有其他方法来计算公式,如ncalc,但我想坚持这种方法.

谢谢

解决方法

根据你给出的,如果这是预期的字符串输入,你可以这样做:

string input = "5+4+6";
int result = 0;
while (input.Contains('+'))
{
    var numbers = input.Split('+');

    foreach(var num in numbers)
    {
        result += Convert.ToInt32(num);
    }
}

类似于此的东西应该有效,你可以替换任何运算符.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...