Hallo,
wie kann iche in bestimmtes Zeichen in einem String zählen?
fneuweiler
Mit der Hand. Schleife und zählen.
Hallo,
mein Vorschlag: Mach eine List und dann sagst du, der inhalt der list = dein string.Split(deinZeichen) und dann einen count auf die items.
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
Hallo fneuweiler,
Regex.Matches (zeichenkette, Regex.Escape (zeichen)).Count
herbivore
Machs nicht per Regex, ist viel zu langsam wenn du wirklich nur einzelne Zeichen suchst! Habs selber erst durch. So wie Svenson sagt ist schon am schnellsten:
int CountChar(string s, char search) {
int tmp;
for(int i = 0; i < s.Length; i++) {
if(s[i] == search) {
tmp++;
}
}
return tmp;
}
Baka wa shinanakya naoranai.
Mein XING Profil.
Hallo talla,
dass es mit Regex langsamer ist als mit deiner Methode ist klar, aber das es zu langsam ist, lässt sich ohne die konkrete Aufgabenstellung einfach nicht sagen. Ich weise deine Behauptung daher zurück.
Und mein Code ist übersichtlicher. Je leistungsfähiger die Rechner und je umfangreicher die Programme werden, desto wichtiger ist Lesbarkeit gegenüber Performace.
Hallo fneuweiler,
machs per Regex 🙂
herbivore
Er redete von einem! betimmten Zeichen, da ist der Regex im Vergleich zur Schleife saulahm 😉 Glaube mir, hab erst diese Woche ne Textdatei mit über 100000 Zeilen einlesen müssen und in jeder Zeile die Anzahl eines Zeichens zählen müssen 🙂 Hatte es erst per Regex und dann per Schleife ists viel kürzer.
Ganz anders siehts bei regulären Ausdrücken aus! Da gebe ich dir recht, da geht nichts über diese Funktion.
Baka wa shinanakya naoranai.
Mein XING Profil.
Hallo talla,
nochmal: Es hängt von der konkreten Aufgaben ab, ob eine Lösung zu langsam ist. Ob eine Lösung langsamer ist als eine andere, ist für sich noch kein Kriterium. Es ist mir als Benutzer z.B. egal, ob ich auf die Antwort eines Programms 1µs oder 1ms warten muss. Eine Lösung, die also tausendmal langsamer ist, ist hier immer noch schnell genug.
Ich wehre mich nicht dagegen, dass Regex langsamer sind, ich wehre mich gegen die pauschale Aussage, dass sie zu langsam sind.
herbivore
Hallo,
habe die Version von herbivore
Regex.Matches (zeichenkette, Regex.Escape (zeichen)).Count
genutzt und kann nicht sagen das diese langsam ist.
Gruß, telfa
Hallo zusammen,
der Vollständigkeit halber:
int sCount = "Heizölrückstoßabdämpfung".Count(c => c == 's');
Nicht vergessen, System.Linq
importieren.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo zusammen,
mein Vorschlag stammt von Januar 2006. Linq stand erst mit C# 3.0 im November 2007 zur Verfügung. Aus heutiger Sicht würde ich die Linq-Version bevorzugen. Sie ist ähnlich gut lesbar und hat performance-mäßig mehr Luft. Trotzdem bleibe ich dabei, dass bei Performance üblicherweise nicht das "möglichst schnell" im Vordergrund stehen sollte, sondern das "schnell genug, dafür möglichst einfach/verständlich/lesbar" in den meisten Fällen die bessere Wahl ist. Bei zwei gleich gut lesbaren Alternativen kann und sollte man natürlich die schnellere bevorzugen.
herbivore