web-dev-qa-db-ja.com

文字列内の特定の文字の数を数えます

検索ボックスがあります。

管理者ユーザーが「@MG @EB dorchester」を検索する場合があります。

ASPでは、文字列に記号「@」が出現する回数を数える必要があります。どのように可能ですか?

21
TheCarver

これを試して:

len(yourString) - len(replace(yourString, "@", ""))
43
Andrew Hare
Response.write ubound(split(str,"@"))

特定の文字の出現を数えるのに十分です

4
srawn

JW01の場合

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

Whileループを試してください:

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

[〜#〜]編集[〜#〜]

このforループの方が理にかなっています。

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

検索を空白に置き換え、元の文字列と新しい文字列の違いを見つける文字列が存在する回数

Dim a = "I @ am @ Thirs@ty" 
Dim count 
count = Len(a) - Len(Replace(a,"@",""))
Response.write count
0
narayanan
Function FnMatchedStringCountFromText(strText,strStringToSearch)
 strLength =  Len(strText)
 strNumber = 1
 IntCount = 0
 For i = 1 to strLength
     If Instr(1,strText,strStringToSearch,0) > 0 Then
        stMatch = Instr(1,strText,strStringToSearch,0)
        strText = Mid(strText,stMatch+2,strLength)
        IntCount = IntCount+1
     Else
         Exit For
     End If
 Next
FnMatchedStringCountFromText = IntCount
End Function