48 votes

Compter combien de fois un certain caractère apparaît dans une chaîne de caractères avant tout autre caractère.

J'ai de nombreuses cordes. Chaque chaîne est précédée d'au moins 1 $ . Quelle est la meilleure façon de parcourir en boucle les caractères de chaque chaîne de caractères pour compter le nombre de $ par chaîne.

eg :

"$hello" - 1
"$$hello" - 2
"$$h$ello" - 2

100voto

gprasant Points 2124

Vous pouvez utiliser la méthode Count

var count = mystring.Count(x => x == '$')

35voto

Yuriy Faktorovich Points 33347
int count = myString.TakeWhile(c => c == '$').Count();

Et sans LINQ

int count = 0;
while(count < myString.Length && myString[count] == '$') count++;

21voto

Jon Skeet Points 692016

L'approche la plus simple serait d'utiliser LINQ :

var count = text.TakeWhile(c => c == '$').Count();

Il existe certainement des approches plus efficaces, mais c'est probablement la plus simple.

10voto

joppiesaus Points 690

Vous pouvez le faire, cela ne nécessite pas LINQ, mais ce n'est pas la meilleure façon de le faire (puisque vous divisez la chaîne entière et la mettez dans un tableau et choisissez juste la longueur de celle-ci, vous pourriez mieux faire un while boucle et vérifier chaque caractère), mais cela fonctionne.

int count = test.Split('$').Length - 1;

8voto

Sabbir Points 1
var str ="hello";
str.Where(c => c == 'l').Count()  // 2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X