「Google スプレッドシートで文字列の分割」で、他の言語における同様の処理を見直していたとき、 Haskell における文字列の分割が、正規表現を利用した方法以外にもっとお手軽にできないかと思い探してみると、Data.List.Split があるのに気がついた。
インストール
標準ではインストールされていないので、 utf8-string を使えるようにしたときのようにインストール。(cf. 4. Building and installing a package) HackageDB: split-0.1.1 の Download より split-0.1.1.tar.gz をダウンロードして解凍。解凍したフォルダ内において、
runhaskell Setup.hs configure runhaskell Setup.hs build runhaskell Setup.hs install
でインストール。
Data.List.Split
The Data.List.Split module contains a wide range of strategies for splitting lists with respect to some sort of delimiter, mostly implemented through a unified combinator interface.
(Data.List.Split より)
試してみる。
import Data.List.Split main = print $ splitOn "," "hoge,piyo,fuga"
日本語でも。ただし、ソースコードのエンコーディングは UTF-8 で、結果をファイルで開くときも UTF8 であることを忘れずに。
import Data.List.Split import System.IO.UTF8 as U main = mapM_ U.putStrLn $ splitOn "," "ほげ,ぴよ,ふが"
その他
ちなみに、自前で実装する場合は、break 関数を使う。
0コメント:
コメントを投稿