これはいくつかの異なる方法で尋ねられましたが、私は別の開発者と「私の方法」と「あなたの方法」について議論しています。言語はC#です。
各チャンクの最初の 2 文字がタグであるパイプ区切り文字列を解析したいと考えています。
ルール。私のルールではなく、私に与えられた、守らなければならないルールです。文字列の形式を変更できません。この関数は何度も呼び出される可能性があるため、効率が重要です。シンプルに保つ必要があります。私が探している入力文字列とタグは、実行時に変更される可能性があります。
入力文字列の例: AOVALUE1|ABVALUE2|ACVALUE3|ADVALUE4 値が必要な可能性があるタグの例: AB
区切り文字に基づいて文字列を配列に分割し、関数が呼び出されるたびに配列をループします。次に、最初の 2 文字を見て、最初の 2 文字を引いた値を返します。
「他の人」の方法は、文字列を取得し、IndexOf と SubString の組み合わせを使用して、探しているフィールドの開始点と終了点を見つけることです。次に、SubString を再度使用して、値から最初の 2 文字を引いた値を引き出します。したがって、彼は IndexOf("|AB") を文字列内の検索と次のパイプと言うでしょう。これが始まりと終わりになります。次に、SubString を出力します。
ここで、IndexOf と SubString は毎回文字レベルで文字列を解析するので、大きなチャンクを使用して文字列から最初の 2 文字を差し引いたものを読み取るよりも効率が悪いと考えるべきです。それとも、私たち二人が提案したものよりも優れた別の方法はありますか?