Hallo,
wie ich feststellen durfte gibt es keine vorgefertigte Funktion, die zählt wie viele verschiedene Zeichen ein String enthält. Also fix eine runtergetippt:
private int GetNumberOfVariousChars(string strValue)
{
int intCount;
for (intCount = 0; strValue.Length > 0; intCount++)
{
strValue = strValue.Trim(strValue[0]);
}
return intCount;
}
Soweit, so gut. Beim Debuggen durfte ich nun festellen, dass Trim manchmal nicht korrekt vorgeht. Beispiel: Beim Wort "nennen" sollte die Funktion "2" zurückgeben. Jedoch gibt sie "3" zurück, da zuerst das erste "n" getrimmt wird, anschließend die beiden "e" und "n". Das selbe ist beim Wort "elefant" der Fall.
Nutz ich die Funktion falsch oder wie?
Danke schonmal.
Nutz ich die Funktion falsch oder wie?
Auf jeden Fall. Die Trim-Funktion entfernt Zeichen, aber zählt nicht, wieviele unterschiedliche Zeichen in einem String sind. Auch mit deiner Schleife ergibt es keinen Sinn für mich.
Christian
Weeks of programming can save you hours of planning
Ich ging davon aus, dass die Trim-Funktion aufeinmal alle gleichen Zeichen entfernt (sollte sie ja, oder?). Und die Anzahl der Durchgänge die die for-Schleife braucht, ist die Anzahl der verschiedenen Buchstaben.
Hallo Bugrick,
die Methode arbeitet nicht falsch. in der MSDN steht ausdrücklich
Zitat von: MSDN (String.Trim-Methode)
Entfernt sämtliche Zeichen aus einer angegebenen Menge von Zeichen am **Anfang **und am **Ende **dieser Instanz.
Du müsstest also noch über deinen string laufen und mit "Contains" und dem Index das Zeichen löschen und deinen Zähler inkrementieren.
Gruss Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Du könntest statt Trim auch Repleace verwenden und dann die Differenz der stringlänge ermitteln
String.Relpleace("n","");
Wenn Groß-und Kleinbuchstaben gezählt werden sollen, einfach ein String.ToUpper() machen.
Ich ging davon aus, dass die Trim-Funktion aufeinmal alle gleichen Zeichen entfernt
Deshalb gibt es ja die MSDN-Doku, damit man nicht vermuten, sondern nachschauen kann, wie es tatsächlich ist.
Und [Hinweis] Wie poste ich richtig? Punkt 1.1 gibt es, um solche unnötigen Threads zu vermeiden.