6

これは、Java から移行する人にとっては、.NET に関する典型的な質問です。

.NET には java.io.StreamTokenizer に直接相当するものはないようですが、JLCA はそれを実装しようとする SupportClass を提供しています。JLCA は、String をソースとして受け取る Tokenizer SupportClass も提供していると思います。

Stream と String の両方をトークン化するための推奨される方法は何ですか? それともありますか?ストリームは .Net でどのようにトークン化されますか? java.io.StreamTokenizer が提供する柔軟性が欲しいです。何かご意見は?

4

6 に答える 6

6

.NET には、StreamTokenizer と完全に同等のものはありません。単純なケースでは String.Split() を使用できますが、より高度なトークン解析では、おそらくSystem.Text.RegularExpressions.Regexを使用することになります。

于 2008-09-26T20:54:11.760 に答える
4

特定の文字のコレクションに基づいて文字列を分割する必要がある場合は、System.String.Split を使用します。

System.Text.RegularExpressions.RegEx.Split を使用して、一致するパターンに基づいて分割します。

于 2008-09-26T20:52:06.740 に答える
1

tuPrologをJavaからC#に移植するときに、同等のStreamTokenizerを見つけるという同じ問題がありました。私の知る限り、TextReaderを入力目的の「ストリーム」として受け取るStreamTokenizerの直接変換であるものを書くことになりました。tuProlog.NET 2.1(LGPLライセンス)のダウンロードにコードが含まれているので、自由に再利用してニーズに合わせてください。

于 2008-09-27T00:44:46.650 に答える
1

Nextem ライブラリにトークナイザーがあります -- ここで例を見ることができます: http://trac.assembla.com/nextem/browser/trunk/Examples/Parsing.n

Nemerle マクロとして実装されていますが、これを記述して C# から簡単に使用できます。

于 2008-09-26T20:51:54.837 に答える
1

私はそうは思いません。非常に単純なトークン化については、System.String.Split() をご覧ください。

System.Text.RegularExpressions.Regex によって、より複雑なトークン化を実現できます。

于 2008-09-26T20:52:10.657 に答える
0

文字列をトークン化するには、 を使用しますstring.Split(...)

于 2008-09-26T20:50:46.293 に答える