将一段表达式中的数字加入c#数组

有一段四则表达式1+2*3-4把1234加如数字数组把+*-加入符号数组... 有一段四则表达式 1+2*3-4

把1 2 3 4 加如数字数组

把 + * - 加入符号数组
展开
 我来答
百度网友12a317f
2011-08-04 · 超过26用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:66.5万
展开全部
可以循环读取每个字符,然后判断字符是否为运算符,如果不是则把字符连接为字符串,如果是则把连接的字符串存入数组,把运算符存入另一个数组。

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呢。。。。
懒洋洋Fly
2011-08-04 · TA获得超过111个赞
知道答主
回答量:69
采纳率:0%
帮助的人:52.5万
展开全部
list<int> arr=new List<int>();
String exp="1+2*3-4";
for(int i=0;i<exp.length;i++){
if(exp[i]>47 && exp[i]<58)
arr.add(int.Parse(exp[i].ToString());
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式