5 Stimmen

Berechnung der Anzahl von Zeichenwiederholungen in einer Zeichenkette in c#

Wie kann ich die Anzahl der Wiederholung von Zeichen in String in c# berechnen? Beispiel habe ich sasysays Anzahl der Wiederholung des Zeichens 's' ist 4

16voto

Tomas Petricek Punkte 233658

Hier ist eine Version mit LINQ (geschrieben mit Erweiterungsmethoden):

int s = str.Where(c => c == 's').Count();

Dabei wird die Tatsache genutzt, dass string ist IEnumerable<char> So können wir alle Zeichen herausfiltern, die mit dem gesuchten Zeichen übereinstimmen, und dann die Anzahl der ausgewählten Elemente zählen. Tatsächlich können Sie genau das schreiben (weil die Count Methode können Sie ein Prädikat angeben, das für alle gezählten Elemente gelten soll):

int s = str.Count(c => c == 's');

7voto

Kobi Punkte 129985

Eine andere Möglichkeit ist:

int numberOfS = str.Count('s'.Equals);

Das ist ein bisschen verkehrt - 's' ist ein Zeichen, und jedes Zeichen hat eine Equals Methode, die als Argument für Count .
Natürlich ist dies weniger flexibel als c => c == 's' - können Sie sie nicht einfach in eine komplexe Bedingung umwandeln.

3voto

Keith Nicholas Punkte 42417
s.Where(c => c == 's').Count()

wenn s eine Zeichenkette ist und Sie nach 's' suchen

2voto

corsiKa Punkte 79125
for(int i=0; i < str.Length; i++) { 
    if(str[i] == myChar) {
        charCount++;
    }
}

2voto

Thomas Levesque Punkte 277723

Eine allgemeinere Lösung, bei der die Anzahl der Vorkommen aller Zeichen gezählt wird:

var charFrequencies = new Dictionary<char, int>();
foreach(char c in s)
{
    int n;
    charFrequencies.TryGetValue(c, out n);
    n++;
    charFrequencies[c] = n;
}

Console.WriteLine("There are {0} instances of 's' in the string", charFrequencies['s']);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X