【发布时间】:2020-08-25 09:38:10
【问题描述】:
我想用以下代码将乳胶字符串解析为数学表达式
static string ParseString(List<string> startItems, string input)
{
foreach (var item in startItems)
{
int charLocation = input.IndexOf(item, StringComparison.Ordinal);
if (charLocation > 0)
{
switch (input.Substring(0, charLocation).Last())
{
case '{':
case '+':
case '-':
case '*':
break;
default:
input = input.Replace(item, "*" + item);
break;
}
}
}
return input;
}
static void Main(string[] args)
{
string ToParse = @"\sqrt{3}\sqrt{3}*4\sqrt{3}";
ToParse = ParseString(new System.Collections.Generic.List<string> { @"\frac", @"\sqrt" }, ToParse);
Console.WriteLine(ToParse);
}
我应该在每个 \sqrt 单词乘以 char 之前得到。但是我的程序在第一个 \sqrt 中中断并且无法解析其他的。 结果是
\sqrt{3}\sqrt{3}*4\sqrt{3}
我想得到
\sqrt{3}*\sqrt{3}*4*\sqrt{3}
抱歉英语不好。
【问题讨论】:
-
你能添加结果字符串吗?
-
@GuruStron 完成
-
我的意思是你想得到什么。
-
公式解析器或求解器绝非易事。这是其中之一,你最好只使用别人的代码。我从来不需要一个,所以我不能给你建议。
-
还有一个link
标签: c#