点击目录传送ฅʕ•̫͡•ʔฅ
C#实现字符串解析
类似于数据结构的一元多项式
字符串解析
对老师代码的理解
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//能自己实现很重要。。。回去要加把劲了
namespace HL10._10jiSuanQi
{
public enum Opt //操作的枚举类型
{
Add,
Minus,
Mul,
Div,
None
}
static class StringParse //解析字符串
{
public static int Parse(string str)
{
Stack<int> numStack = new Stack<int>(); //创建一个存放数据的int类型的栈
Stack<Opt> optStack = new Stack<Opt>(); //创建一个存放运算符的枚举类型(Opt)的栈
optStack.Push(Opt.None); //可以理解为将#压入栈中
bool preDigit = false; //判断是否为数字
string curNumStr = string.Empty; //当前数字,就是将字符串里的数抠出来
Opt curOpt = Opt.None;
Opt preOpt = Opt.None; //定义两个枚举类型的变量,一个用来存放前一个运算符,一个存放当前的运算符,都赋初值None
//删除多余的运算符
char[] trimChars = {
'+', '-', '*', '/' };
str = str.TrimEnd(trimChars); //从字符串尾删
for (int i = 0; i < str.Length; i++)
{
//如果当前字符是数字
if(char.IsDigit(str[i]) == true