string - 在 C# 中对字符串执行算术运算

标签 string algorithm c#-4.0 arithmetic-expressions

我是 C# 初学者,我从文本框中获取字符串并应用以下算法,但操作数和运算符的中断不起作用..

    string cal = "225+699"; 
        char[] all= cal.ToCharArray();
        int i=0,j=0;
        while (all[i] != '+' || all[i] != '-' || all[i] != '/' || all[i] != 'x')
        {

            j++;

        } // first operator check 
        char op = all[j + 1]; // operator save
        char[] part1 = new char[j];

        for (i = 0; i <= j; i++)
        {
            part1[i] = all[i];
        }
        string inp = Convert.ToString(part1);
        float a = float.Parse(inp); // first operand
        int l=cal.Length-(j+1);
        char[] part2 = new char[l];
        int c = 0;
        for (i = j + 1; i <= cal.Length; i++)// starts after operator
        {
            part2[c] = all[i];
            c++;

        }

        string h = Convert.ToString(part2);
        float b = float.Parse(h); // other operand 

最佳答案

先决条件:学习该语言的基础知识。例如,您可以在字符串上使用索引器或如何使用列表而不是数组。了解逻辑运算符的工作原理,例如您的 while 条件始终为真或抛出异常,它似乎也不合适,因为这里没有嵌套循环,但它看起来属于一个。最重要的是 - 你进入的太深太快了。

如果您是初学者并希望学习解析...请返回书本并阅读一些理论,找出内容 Reverse Polish Notation是什么以及如何使用它

如果您希望解决解析问题以解决其他任务,请查看 FLEE ,它可以为您进行解析,并且从实际的角度来看可能会更有用(尽管理论知识有其优点并且不应被忽视)

关于string - 在 C# 中对字符串执行算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210715/

相关文章:

c++ - 字符串变量在 Eclipse CDT 中不起作用

c - 为什么我的字符串末尾总是有多余的字符?

php - 替换,但仅在某些情况下包含分隔符

c# - 获取给定星期年份、给定月份和给定星期的开始和结束日期

我可以通过最少的复制从 Unbounded_String 获取 chars_ptr 吗?

c - 设计一个字符搜索函数,同时被迫使用 strchr

algorithm - OpenCL/CUDA : Two-stage reduction Algorithm

algorithm - 在 O(n) 时间内找到重叠约会?

c# - 将 Varchar 值 'ListViewItem:{2}' 转换为数据类型 int 时转换失败

javascript - 我的 ajax 调用应该是什么样子 - jQuery、MVC4?