Heim >Backend-Entwicklung >C++ >Wie kann ich das Zeichen oder die String -Vorkommen in einer Zeichenfolge effizient zählen?

Wie kann ich das Zeichen oder die String -Vorkommen in einer Zeichenfolge effizient zählen?

DDD
DDDOriginal
2025-01-31 06:36:101027Durchsuche

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

effizientes Zählen von Zeichen oder Substrings in Strings

Es gibt verschiedene Methoden, um das Vorkommen bestimmter Zeichen oder Unterstrings innerhalb einer größeren Zeichenfolge zu zählen, jeweils mit ihren eigenen Vor- und Nachteilen.

Eine gemeinsame Technik verwendet den String -Austausch. Zum Beispiel:

<code class="language-csharp">string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;</code>

Dies berechnet die Anzahl der "/" -Scharns, indem die Länge der String nach alle "/" -Pels aus der ursprünglichen Länge entfernt wird.

Ein anderer Ansatz beinhaltet die String -Spaltung:

<code class="language-csharp">string haystack = "/once/upon/a/time";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;</code>

Diese Methode spaltet die Zeichenfolge basierend auf dem Zielsubstring und bestimmt die Anzahl.

Für Entwickler, die .NET 3.5 oder höher verwenden, bietet Linq eine elegantere Lösung:

<code class="language-csharp">int count = source.Count(x => x == '/');</code>
Die integrierten Zählfunktionen von Linq rationalisieren den Prozess erheblich.

Interessanterweise zeigen Benchmark -Tests häufig, dass die String -Ersatzmethode (das erste Beispiel) im Allgemeinen die schnellste ist. Während die Leistungsunterschiede zwischen diesen Methoden für die meisten Anwendungen häufig vernachlässigbar sind, erweist sich die String -Ersatzmethode konsistent als die effizienteste.

Das obige ist der detaillierte Inhalt vonWie kann ich das Zeichen oder die String -Vorkommen in einer Zeichenfolge effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn