ホームページ >バックエンド開発 >C++ >文字列内の文字または文字列の発生を効率的にカウントするにはどうすればよいですか?

文字列内の文字または文字列の発生を効率的にカウントするにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-31 06:36:10979ブラウズ

How Can I Efficiently Count Character or String Occurrences in a String?

文字列の文字またはサブストリングを効率的にカウントする

より大きな文字列内の特定の文字またはサブストリングの発生をカウントするためのいくつかの方法があり、それぞれに独自の利点と短所があります。

1つの一般的な手法では、文字列交換を使用します。 たとえば、

これは、元の長さからすべての "/"文字を削除した後、文字列の長さを
<code class="language-csharp">string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;</code>
の長さを差し引くことにより、「/」文字の数を計算します。

別のアプローチには、文字列分割が含まれます:

この方法は、ターゲットのサブストリングに基づいて文字列を分割し、カウントを決定します。 .NET 3.5以降を使用している開発者の場合、LINQはよりエレガントなソリューションを提供します:

<code class="language-csharp">string haystack = "/once/upon/a/time";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;</code>
Linqの組み込みカウント機能は、プロセスを大幅に合理化します

興味深いことに、ベンチマークテストでは、文字列置換方法(最初の例)が一般的に最速であることをしばしば示しています。これらの方法のパフォーマンスの違いは、ほとんどのアプリケーションではしばしば無視できますが、文字列置換方法は一貫して最も効率的であることが証明されています。

以上が文字列内の文字または文字列の発生を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。