私は 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