Question

Cela doit être une question .NET classique pour toute personne migrant de Java.

.NET ne semble pas avoir d’équivalent direct de java.io.StreamTokenizer, mais JLCA fournit un SupportClass qui tente de l’implémenter. Je crois que le JLCA fournit également un Tokenizer SupportClass qui prend une chaîne comme source, ce dont je pensais qu'un StreamTokenizer serait dérivé, mais ne le serait pas.

Quelle est la méthode préférée pour créer un jeton à la fois pour un flux et une chaîne? ou y en at-il un? Comment les flux sont-ils segmentés en .Net? J'aimerais avoir la flexibilité que java.io.StreamTokenizer fournit. Des pensées?

Était-ce utile?

La solution

Il n'y a rien dans .NET qui soit complètement équivalent à StreamTokenizer. Dans les cas simples, vous pouvez utiliser String.Split (), mais pour une analyse de jeton plus avancée, vous devrez probablement utiliser System.Text.RegularExpressions.Regex .

Autres conseils

Utilisez System.String.Split si vous devez fractionner une chaîne en fonction d'une collection. de caractères spécifiques.

Utilisez System.Text.RegularExpressions.RegEx.Split pour fractionner sur les motifs correspondants.

Il y a un générateur de jetons dans la bibliothèque Nextem - vous pouvez en voir un exemple ici: http://trac.assembla.com/nextem/browser/trunk/Examples/Parsing.n

Il est implémenté en tant que macro Nemerle, mais vous pouvez l'écrire puis l'utiliser facilement à partir de C #.

Je ne pense pas, pour une création de jet très simple, jetez un oeil à System.String.Split ().

Une génération de jetons plus complexe peut être réalisée avec System.Text.RegularExpressions.Regex.

Nous avons eu le même problème pour trouver un équivalent de StreamTokenizer lors du portage de tuProlog de Java en C #. Autant que je sache, nous avons fini par écrire une conversion directe de StreamTokenizer qui prend un TextReader en tant que "flux". à des fins de saisie. Vous trouverez le code dans le télécharger pour tuProlog.NET 2.1 (licence LGPL), alors n'hésitez pas pour le réutiliser et l’adapter à vos besoins.

Pour personnaliser une chaîne, utilisez string.Split (...) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top