在.Net中对字符串进行标记的方法有哪些?

时间:2008-09-26 20:49:04

标签: c# java .net migration

对于从Java迁移的任何人来说,这必须是一个经典的.NET问题。

.NET似乎没有直接等效于java.io.StreamTokenizer,但是JLCA提供了一个试图实现它的SupportClass。我相信JLCA还提供了一个Tokenizer SupportClass,它以String为源,我认为StreamTokenizer是派生出来的,但不是。

对流和字符串进行令牌化的首选方法是什么?或者有一个?如何在.Net中标记流?我想拥有java.io.StreamTokenizer提供的灵活性。有什么想法吗?

6 个答案:

答案 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(...)