我在ASP.NET中创建一个简单的计算器。当用户选择按钮时,该值将添加到单个textBox中。选择相等按钮后,字符串将被发送到ASP.NET服务器(即使用c#代码隐藏文件)。后面的c#代码假设要拆分此字符串,计算一个值,并将值返回到同一文本框。我正在使用一个名为compute的类,它有一个加,减,乘和除法(它是一个要求)。
我无法确定打破整个字符串的最佳方法,例如3 * 4/65 + 1。
我不确定实现这一目标的最佳方法是什么。下面是我在c#文件中的代码,虽然它不多。我感谢任何帮助/提示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Assign2_Calc : System.Web.UI.Page
{
protected void ButtonEqual_Click(object sender, EventArgs e)
{
string inputStr = inputBox.Text;
double result = 0;;
Calculator myCalculator = new Calculator();
switch ()
{
case "+":
result = myCalculator.Add(val1, val2);
break;
}
inputBox.Text = result.ToString();
}
}
答案 0 :(得分:1)
您可以使用Regex.Split()
在正则表达式中捕获括号,以便返回运算符和表达式的参数,例如:
Regex.Split("([+-/*()])")
使用示例表达式3*4/65+1
,结果为:{"3","*","4","/","65","+","1"}
使用带有未实现运算符的表达式:3*2^2/65+1
,结果为:{"3","*","2^2","/","65","+","1"}
。
你会得到一个字符串数组,希望包含单独的参数和运算符。您必须检查每个字符串中的无效元素,例如未实现的运算符或其他无效字符(例如^
,\
)。如果split数组中的任何字符串不仅仅是有效参数或运算符,您将返回错误结果。
答案 1 :(得分:0)