特定の文字・文字列の出現回数を調べる
[*** Text版]
count :: Text -> Text -> Intを使います.ただし,オーバーラップしている出現は数えないものとします.
インポート
code: (haskell)
import Data.Text as T
評価例
code:_
>> :set -XOverloadedStrings
>> T.count "\n" "a\nb\nccc\nd\n"
4
>> T.count "にわ" "うらにわにはにわ,にわにはにわ,にわとりがいる."
5
>> T.count "ああ" "ああああ"
2
[*** String版]
Textに変換してしまえば簡単に済ませられます.
code: (haskell)
countStr :: String -> String -> Int
countStr pat = T.count (T.pack s) . T.pack
評価例
code:_
>> countStr "\n" "a\nb\nccc\nd\n"
4
>> countStr "にわ" "うらにわにはにわ,にわにはにわ,にわとりがいる."
5
>> countStr "ああ" "ああああ"
2