Hallo!
Ich möchte zählen wie oft ein Teilstring in einem String vorkommt!
Meine Anwendung: ich möchte zählen, wie oft ein Beistrich in einem String vorkommt.
Ich habe bereits nach String Funktionen gesucht, doch leider erfolglos!
Ich bitte euch um Hilfe....
MFG
Manuel
MFG
Manuel
Hallo m4n1,
musst du selbst programmieren, z.B. mit einer Schleife über IndexOf.
herbivore
Danke herbivore!
Habe es so realisiert...vllt mit umweg, jedoch es funktioniert 😁
string copy = "";
int count = 0;
int index = 0;
copy = orginal;
while (true)
{
index = copy.IndexOf(",");
if (index != -1)
{
count++;
copy = copy.Substring(index + 1);
}
else break;
}
glg
MFG
Manuel
Hallo m4n1,
Substring ist unnötig. Es gibt eine Überladung von IndexOf, bei der angeben kann, wo die Suche beginnen soll.
herbivore
Wenn Dein "Teilstring" nur aus einem Zeichen besteht, dann geht's auch bequemer:
int count = String.Split('-').Length-1;
Bart Simpson
Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.
Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...
Also mit
Microsoft.VisualBasic.Split(String,Delemiter).Length-1
geht das auch für für Teilstrings, die Länger sind, als ein Zeichen...
//edit: Code-Tags vergessen
Man braucht für das Zählen mit Split nicht mal den VisualBasic Namensraum (auch bei mehrstelligen zu zählenden Strings nicht)
int Cnt = str.Split(new string[]{StringToCount},StringSplitOptions.None).Length - 1
Was auch geht und vom Prinzip her ziemlich logisch ist, wäre das hier:
private int GetCharCount(char value, string text)
{
int count = 0;
foreach (char character in text)
{
if (character == value)
{
count++;
}
}
return count;
}
> Codejunky <
Dem tut's ja nur fuer die Suche nach einzelnen Chars, nicht nach "Teilstrings". Was verpeil ich?
Pound for pound, plutonium is about as toxic as caffeine when eaten.
Original von m4n1
Meine Anwendung: ich möchte zählen, wie oft ein Beistrich in einem String vorkommt.
... 🙂
Da muss er einfach nur "-" an die Methode übergeben.
> Codejunky <
try this
static void Main(string[] args)
{
Console.WriteLine(CountTokens("hallohallohallo","ha"));
}
private static int CountTokens(string input, string pattern)
{
int counter = 0;
int pos = - pattern.Length;
while ((pos = input.IndexOf(pattern, pos + pattern.Length)) > -1) counter++;
return counter;
}
keoma
Mit Regex geht es eigentlich am einfachsten:
public int CountWord(string text, string word)
{
return Regex.Matches(text, word).Count;
}
Nicht vergessen, den Namespace System.Text.RegularExpressions einzubinden.
mfg
webstarg
Edit: Wobei das (Such-)Wort dann aber nur aus Buchstaben bestehen sollte!
Original von webstarg
Edit: Wobei das (Such-)Wort dann aber nur aus Buchstaben bestehen sollte!
Ansonsten ist es aber auch nicht problematisch: statische Methode Regex.Escape
i've tested it, it works good.
private static int CountTokensInString(string inputString, string searchString)
{
return Regex.Matches(inputString, Regex.Escape(searchString)).Count;
}