<分区>
我正在将代码从 JAVA 移植到 C#,并且部分 JAVA 代码使用了 tokenizer - 但据我了解,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