首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析infix表达式,同时将分隔符保留为数组元素

解析infix表达式,同时将分隔符保留为数组元素
EN

Stack Overflow用户
提问于 2015-10-10 05:30:11
回答 1查看 160关注 0票数 1

C#是否有一种方法让我解析这样的东西:

代码语言:javascript
复制
 "(h1+h2+h3)" into a string array {"(", "h1", "+", "h2", +, "h3", + ")"} ? 

我正在实现分流码算法,我不想因为没有令牌而工作。

调车码算法

编辑:我刚刚写了我自己的解决方案

代码语言:javascript
复制
private string[] parseExp(string exp)
{
        // it will be at least as long as the input string
        string[] parsed = new string[exp.Length];
        int index = 0;

        foreach(char c in exp)
        {
            if(op.Contains(c))
            {
                index++;
                parsed[index++] += c.ToString();
            }else
            {
                parsed[index] += c.ToString();
            }
        }

        Array.Resize(ref parsed, index + 1);

        return parsed;
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-10 05:55:58

您可以尝试重新排列表达式,以便可以使用String.Split操作将其拆分,但在这种情况下,您需要知道表达式可以具有的所有可能的符号。

代码语言:javascript
复制
string input="(h1+h2+h3)";
String newString = input.Replace("("," ( ").Replace(")"," ) 
"
).Replace("+"," + "); // Reformat string by separating symbols
String[] splitStr = newString.Split(new char[]{' '});
foreach(string x in splitStr)
{
  Console.WriteLine(x);    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33050666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档