Muskampen 2025: Segraren korad!

räkna förekomster i string (C#)

Permalänk
Medlem

räkna förekomster i string (C#)

hej

Finns det någon smidig funktion för att räkna antalet förekomster av ett ett eller flera tecken i en string i c#? Har letat i msdn men hittar inte någon

Visa signatur

Homer:Operator! Give me the number to 911!

Permalänk

Du kan ju använda String.ToCharArray, göra en for-loop och ränka.

char[] chars = str.ToCharArray(); int counter = 0; foreach( char c in chars ) { if ( c == myChar ){ counter++; } }

Permalänk
Medlem

tackar det ska provas!

när jag kör det där får jag

Operator '==' cannot be applied to operands of type 'char' and 'string'

>_<

Visa signatur

Homer:Operator! Give me the number to 911!

Permalänk

myChar måste ha vara samma datatyp som c, dvs char.

string str = "hej hopp i tallens topp"; char myChar = 'a'; char[] chars = str.ToCharArray(); int counter = 0; foreach( char c in chars ) { if ( c == myChar ){ counter++; } }

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Pink Lemonade
Du kan ju använda String.ToCharArray, göra en for-loop och ränka.

char[] chars = str.ToCharArray(); int counter = 0; foreach( char c in chars ) { if ( c == myChar ){ counter++; } }

Det löser bara problemet om man bara vill kontrollera mot ett tecken.
Detta borde funka:

string toFind = "hej", searchIn = "hejsan svejhejsan hejtest hej svejs";
int numberOfMatches = 0, currentPosition = 0;

while( currentPosition != searchIn.Length )
{
int matchPos = searchIn.IndexOf( toFind, currentPosition, searchIn.Length - currentPosition );
if( matchPos != -1 )
{
numberOfMatches++;
currentPosition = matchPos + 1;
}
else
currentPosition = searchIn.Length;
}

Permalänk

Re: räkna förekomster i string (C#)

Citat:

Ursprungligen inskrivet av livez
eller flera tecken

Hoppsan, missade visst det där med flera tecken. Då funkar inte min lösning.

Permalänk
Medlem

tack för hjälpen båda två

Visa signatur

Homer:Operator! Give me the number to 911!