2012-03-30 39 views
2

可能性の重複:
Count specific character occurances in string文字列中の文字の出現回数を数えますか?

私は私が検証しなければならない文字列に区切り文字を持っています。どのようにその文字の出現を数えることができます。今のところ私は次の機能を持っています。

Private Shared Function CountChars(ByVal value As String) As Integer 
    Dim count = 0 
    For Each c As Char In value 
     If c = "$"c Then 
      count += 1 
     End If 
    Next 
    Return count 
End Function 

これより優れた代替ソリューションはありますか?

+1

http://stackoverflow.com/questions/5193893/count-specific- character-occurances-in-stringはあなたの答えが – Marco

+0

あなたのコードは大丈夫です:)おそらく、それをパラメータとしてcharを指定することによって一般的にします。 – Bas

答えて

6

それとも、LINQを使用することができます。..

Private Function CountChars(ByVal value As String) As Integer 

    Return value.ToCharArray().Count(Function(c) c = "$"c) 

End Function 

それに短縮することができます:

Private Shared Function CountChars(ByVal value As String, Byval delim as String) As Integer 

    Return Len(value) - Len(Replace(value, delim, "")) 

End Function 
+2

良い答えですが、不要な '.ToCharArray()'を削除することができます! –

+1

私は、コードが非常に短いので、CountChars関数は必要ないと主張します。単にCountメソッドを直接呼び出すことができます。 –

+0

私は好きです... 'Value.Split(" $ "c).Length-1' –

1

もう1つの方法で出現数を確認できます。より良いコードを見つけたら、下のコードを参照してください。私は考えることができる

value.Count(Function(c) c = "$"c) 
2

最もシンプルで汎用性の高い方法:メタナイトが指摘したように

Dim Occurrences As Integer 
    Dim Start As Integer 
    Dim Found As Integer 
    Do 
     Start = Found + 1 
     Found = InStr(Start, "ENTERTAINMENT", "E") 
     If Found = 0 Then Exit Do 
     Occurrences += 1 
    Loop 
関連する問題