C#中字符串如何转化为单个字符!!!!

我想在文本框中输入一个数学表达式,然后把这个表达式中的操作数和操作符分别入栈,请高手指点!!!!... 我想在文本框中输入一个数学表达式,然后把这个表达式中的操作数和操作符分别入栈,请高手指点!!!! 展开
 我来答
sololive
2008-12-23 · TA获得超过394个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:108万
展开全部
使用正则表达式,
匹配数字用\d+
匹配操作符 用\w{1}
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\d+");
System.Text.RegularExpressions.MatchCollection mc = regex.Matches(text.Text);

System.Text.RegularExpressions.Match中的Value属性就是匹配出来的数字.
wangziyi129
2008-12-23 · TA获得超过1387个赞
知道小有建树答主
回答量:1492
采纳率:100%
帮助的人:0
展开全部
先用
for+ substring() 来取出每一个字符
然后 判断 asc码 就可以
接分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月光uDu
推荐于2016-02-02 · TA获得超过127个赞
知道答主
回答量:88
采纳率:0%
帮助的人:62.2万
展开全部
这个方法很实用,可以借鉴一下:

string str = ""; //数学表达式
foreach(char ch in str)
{
if(char.IsNumber(ch))
{
//操作数入栈
}else
{
//操作符入栈
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7790906
2008-12-23 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:392
采纳率:40%
帮助的人:120万
展开全部
string str = "2+32-10*5/2";

string strSymbol = "+-*/";

int symbolCount = 0;

if (str.IndexOf("+") > 0) symbolCount++;

if (str.IndexOf("-") > 0) symbolCount++;

if (str.IndexOf("*") > 0) symbolCount++;

if (str.IndexOf("/") > 0) symbolCount++;

string[] strMaths = new string[symbolCount + 1];//这里存放数

string[] strSymbols = new string[symbolCount];//这里存放符号

int strIndex = 0;

for (int i = 0; i < strMaths.Length; i++)

{

for (int j = strIndex; j < str.Length; j++)

{

string strTmp = str.Substring(j, 1);

if (strSymbol.IndexOf(strTmp) > -1)

{

strSymbols[i] = strTmp;

strIndex++;

break;

}

else

{

strMaths[i] += strTmp;

strIndex++;

}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式