【发布时间】:2017-10-07 03:35:27
【问题描述】:
我正在构建一个控制台计算器,它将输入数字作为字符串。
例如:
string inputNumber = "190+154+114"
double[] number = new double[5];
我希望将该字符串转换为数字数组,例如:
number[0] = 190;
number[1] = 154;
number[2] = 114;
我知道有一个库可以处理它,但我想了解如何读取符号然后将数字放入数组中。
到目前为止,我所能想到的就是将字符串作为单个字符读取,然后找到“+”字符,然后将数字作为字符读取,直到 character!="null" || character=='+'。但问题是我不知道如何转换成代码。
================================================ ======================== 编辑
我阅读了答案,发现它们非常有趣。但是,插入运算符符号时如何创建新字符串?
例如:
string inputNumber = string.Empty;
string[] number = new string[20];
//Input number
Console.WriteLine("enter a number"); //190+155+220
inputNumber = Console.ReadLine();
那么当输入运算符时如何获取字符串,所以新的字符串必须是这样的:
number[0] = "190";
number[1] = "155";
number[2] = "220";
【问题讨论】:
-
总是+吗?我见过这种编码,其中 + 实际上是符号,你可以得到 - 以及负数
-
您还想存储运算符然后进行数学运算吗?你会接受括号并强制运算符优先级?
-
你能澄清你想要做什么吗?您只是想分割由“+”字符分隔的数字,还是尝试评估诸如“1024/16 * (7+3)”之类的算术表达式?如果是后者,请咨询How to write a parser。
-
这不应该被标记为正则表达式
-
目前只有正数,所以没有负数或括号
标签: c# regex calculator