对于从Java迁移的任何人来说,这必须是一个经典的.NET问题。
.NET似乎没有直接等效于java.io.StreamTokenizer,但是JLCA提供了一个试图实现它的SupportClass。我相信JLCA还提供了一个Tokenizer SupportClass,它以String为源,我认为StreamTokenizer是派生出来的,但不是。
对流和字符串进行令牌化的首选方法是什么?或者有一个?如何在.Net中标记流?我想拥有java.io.StreamTokenizer提供的灵活性。有什么想法吗?
答案 0 :(得分:6)
.NET中没有任何东西完全等同于StreamTokenizer。对于简单的情况,您可以使用String.Split(),但是对于更高级的令牌解析,您可能最终会使用System.Text.RegularExpressions.Regex。
答案 1 :(得分:4)
如果需要根据集合拆分字符串,请使用System.String.Split 具体人物。
使用System.Text.RegularExpressions.RegEx.Split进行拆分 关于匹配模式。
答案 2 :(得分:1)
Nextem库中有一个标记器 - 你可以在这里看到一个例子:http://trac.assembla.com/nextem/browser/trunk/Examples/Parsing.n
它是作为Nemerle宏实现的,但您可以编写它,然后轻松地从C#中使用它。
答案 3 :(得分:1)
我不这么认为,因为非常简单的标记化可以看看System.String.Split()。
System.Text.RegularExpressions.Regex。
可以实现更复杂的标记化答案 4 :(得分:1)
在将tuProlog从Java移植到C#时,我们遇到了同样的问题,即找到StreamTokenizer。我们最终写了一个据我所知的是StreamTokenizer的直接转换,它将TextReader作为“流”用于输入目的。您可以在download for tuProlog.NET 2.1(LGPL许可)中找到代码,因此可以随意重复使用并根据您的需求进行调整。
答案 5 :(得分:0)
要标记字符串,请使用string.Split(...)
。