C#怎样把字符串表达式:“6+8+9+5”转换成可以运算的数值表达式啊 急用....
6个回答
展开全部
static void Main(string[] args)
{
Console.WriteLine("请输入一个表达式...");
string input = Console.ReadLine();
if (char.IsDigit(input[0]) == false
|| char.IsDigit(input[input.Length - 1]) == false)
{
Console.WriteLine("起始和结束字符一定是数字。。。。");
Console.ReadLine();
return;
}
for (int i = 0; i < input.Length; i++)
{
//字符串由+、-、0-9构成
if (i % 2 == 0) //偶数位一定是数字 奇数位一定是加减符号
{
if (char.IsDigit(input[i]) == false)
{
Console.WriteLine("偶数位一定是数字");
Console.ReadLine();
return;
}
}
else
{
bool b = (input[i] == '+' || input[i] == '-');
if (b == false)
{
Console.WriteLine("奇数位一定是运算符号");
Console.ReadLine();
return;
}
}
}
int sum = int.Parse(input.Substring(0, 1));
//总共运算 【长度/2取整】 次数
for (int i = 0; i < input.Length / 2; i++)
{
if (input[2 * i + 1] == '+')
{
sum += int.Parse(input.Substring(2 * i + 2, 1));
}
else
{
sum -= int.Parse(input.Substring(2 * i + 2, 1));
}
}
Console.WriteLine("{0}={1}",input,sum);
Console.ReadLine();
}
{
Console.WriteLine("请输入一个表达式...");
string input = Console.ReadLine();
if (char.IsDigit(input[0]) == false
|| char.IsDigit(input[input.Length - 1]) == false)
{
Console.WriteLine("起始和结束字符一定是数字。。。。");
Console.ReadLine();
return;
}
for (int i = 0; i < input.Length; i++)
{
//字符串由+、-、0-9构成
if (i % 2 == 0) //偶数位一定是数字 奇数位一定是加减符号
{
if (char.IsDigit(input[i]) == false)
{
Console.WriteLine("偶数位一定是数字");
Console.ReadLine();
return;
}
}
else
{
bool b = (input[i] == '+' || input[i] == '-');
if (b == false)
{
Console.WriteLine("奇数位一定是运算符号");
Console.ReadLine();
return;
}
}
}
int sum = int.Parse(input.Substring(0, 1));
//总共运算 【长度/2取整】 次数
for (int i = 0; i < input.Length / 2; i++)
{
if (input[2 * i + 1] == '+')
{
sum += int.Parse(input.Substring(2 * i + 2, 1));
}
else
{
sum -= int.Parse(input.Substring(2 * i + 2, 1));
}
}
Console.WriteLine("{0}={1}",input,sum);
Console.ReadLine();
}
2014-02-11
展开全部
Split方法可以分割字符串,得到一个字符串数组.
例如
string s = "6+8+9+5";
string[] str = s.Split('+');
这样 str就分别获得了6 8 9 5的字符串.
例如
string s = "6+8+9+5";
string[] str = s.Split('+');
这样 str就分别获得了6 8 9 5的字符串.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-11
展开全部
使用文本处理相关函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
using Microsoft.JScript; //需添加此引用
//formula 是公式如:(356+258)*3/0.3
private double GetComputeValueByStringFormula(string formula)
{
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
//获取计算结果 ret
object ret = Microsoft.JScript.Eval.JScriptEvaluate(formula, ve);
//返回结果
return System.Convert.ToDouble(ret);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string a="6+8+9+5";
string[] b = a.spilt('+');
int c = int.parse(b[0])+int.parse(b[2])+int.parse(b[4])+int.parse(b[6]);
string[] b = a.spilt('+');
int c = int.parse(b[0])+int.parse(b[2])+int.parse(b[4])+int.parse(b[6]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-11
展开全部
自己可以分解的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询