我正在将代码从 JAVA 移植到 C#,部分 JAVA 代码使用标记器 - 但据我了解,Java 中的 stringtokenizer 生成的数组也将具有分隔符(在本例中为 +、-、/、* , (, )) 作为记号。我曾尝试使用 C# Split() 函数,但它似乎消除了分隔符本身。最后,这将解析一个字符串并将其作为计算运行。我做了很多研究,并没有找到关于该主题的任何参考资料。
有谁知道如何按照遇到的顺序将实际的分隔符放在拆分数组中?
标记化代码:
public CalcLexer(String s)
{
char[] seps = {'\t','\n','\r','+','-','*','/','(',')'};
tokens = s.Split(seps);
advance();
}
测试:
static void Main(string[] args)
{
CalcLexer myCalc = new CalcLexer("24+3");
Console.ReadLine();
}
“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