小编Ips*_*ter的帖子

C#Tokenizer - 保留分隔符

我正在努力将代码从JAVA移植到C#,而部分JAVA代码使用了tokenizer - 但我的理解是,Java中stringtokenizer生成的数组也会有分隔符(在这种情况下为+, - ,/,*,(,))作为代币.我试图使用C#Split()函数,但它似乎消除了分隔符本身.最后,这将解析一个字符串并将其作为计算运行.我做了很多研究,但没有找到任何关于这个主题的参考资料.

有谁知道如何让它们遇到的实际分隔符在split数组中?

令牌化代码:

public CalcLexer(String s)
{
    char[] seps = {'\t','\n','\r','+','-','*','/','(',')'};
    tokens = s.Split(seps);
    advance();
}
Run Code Online (Sandbox Code Playgroud)

测试:

static void Main(string[] args)
    {
        CalcLexer myCalc = new CalcLexer("24+3");
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

"24 + 3"将产生以下输出:"24","3"我正在寻找输出"24","+","3"

在完全公开的性质中,该项目是类分配的一部分,并使用以下完整的源代码:

http://www.webber-labs.com/mpl/source%20code/Chapter%20Seventeen/CalcParser.java.txt http://www.webber-labs.com/mpl/source%20code/Chapter%20Seventeen/CalcLexer .java.txt

c# stringtokenizer

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

stringtokenizer ×1