web-dev-qa-db-fra.com

Compter le nombre de caractères spécifiques dans la chaîne

J'ai un champ de recherche.

Mon utilisateur admin peut rechercher "@MG @EB dorchester".

En ASP, je dois compter combien de fois le symbole "@" apparaît dans la chaîne. Comment est le possible?

19
TheCarver

Essaye ça:

len(yourString) - len(replace(yourString, "@", ""))
38
Andrew Hare

Pour JW01

Dim pos : pos = 0
Dim count : count = -1
Do 
  count = count + 1
  pos = InStr(pos + 1, str, "@")
Loop While (pos > 0)
4
AnthonyWJones

Essayez une boucle while:

Do While (str.indexOf("@") != -1)
  count = count + 1
  str = right(str, len(str) - str.indexOf("@"))
Loop

MODIFIER:

Cette boucle pourrait avoir plus de sens:

dim strLen, curChar, count
count = 0
int strLen = len(str)
for i = 1 to strLen
  curChar = mid(str, i, 1)
  if curChar = "@"
    count = count + 1
  end if
next
2
JW8
Response.write ubound(split(str,"@"))

est suffisant pour compter l'occurrence d'un caractère spécifique

1
srawn

Remplacez la recherche par un blanc et trouvez la différence entre et la chaîne d'origine et la nouvelle chaîne le nombre de fois qu'une chaîne est présente.

Dim a = "I @ am @ Thirs@ty" 
Dim count 
count = Len(a) - Len(Replace(a,"@",""))
Response.write count
0
narayanan