将一段表达式中的数字加入c#数组
2个回答
展开全部
可以循环读取每个字符,然后判断字符是否为运算符,如果不是则把字符连接为字符串,如果是则把连接的字符串存入数组,把运算符存入另一个数组。
private List<double> NumberList = new List<double>();
private List<string> OperatorList = new List<string>();
private void Check(string exp)
{
string numTmp = "";
for (int i = 0; i < exp.Length; i++)
{
string strtmp = exp.Substring(i, 1);
if (strtmp == "+" || strtmp == "-" || strtmp == "*" || strtmp == "/")
{
OperatorList.Add(strtmp);
if (!string.IsNullOrEmpty(numTmp))
{
NumberList.Add((double)numTmp);
numTmp = "";
}
}
else
numTmp += strtmp;
}
}
最后用NumberList.ToArray()和OperatorList.ToArray()就可以转换为数组了。
private List<double> NumberList = new List<double>();
private List<string> OperatorList = new List<string>();
private void Check(string exp)
{
string numTmp = "";
for (int i = 0; i < exp.Length; i++)
{
string strtmp = exp.Substring(i, 1);
if (strtmp == "+" || strtmp == "-" || strtmp == "*" || strtmp == "/")
{
OperatorList.Add(strtmp);
if (!string.IsNullOrEmpty(numTmp))
{
NumberList.Add((double)numTmp);
numTmp = "";
}
}
else
numTmp += strtmp;
}
}
最后用NumberList.ToArray()和OperatorList.ToArray()就可以转换为数组了。
追问
numTmp是string
在下面NumberList.Add((double)numTmp);
怎么成double了。 好像不能转换啊。
那我把numTmp改成double呢。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询