【发布时间】:2010-11-11 04:23:14
【问题描述】:
我正在将代码从 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
【问题讨论】:
-
忘记添加:“24+3”将导致以下输出:24 3 我正在寻找 24 + 3 的输出
-
@Philip Harris:你可以编辑你的问题,这比添加 cmets 更好
-
您可以编辑自己的帖子而不是添加评论;)
标签: c# stringtokenizer