&tag(Ruby,文字列); *目次 [#w1af3a52] #contents *参考情報 [#i171ee5a] -[[Ruby]] *配列に分割する [#pb885f1d] **splitを使う [#wcc19383] -splitで正規表現を指定して配列に分割できる。 "a b".split(/ /) => ["a", "b"] **splitを使う(末尾をキープ) [#i32b5a39] -splitを引数なしで使うと末尾要素が削除されてしまうのでキープしたい場合は-1を指定する。 #pre{{ str = "\t\t\n" p str.split(/\t/) # 末尾に\rがあるので空白要素もキープされる str.chomp! p str.split(/\t/) # chomp!により\nがなくなったので末尾の空白要素が削除される。 p str.split(/\t/,-1) # -1を指定すれば大丈夫。 => ["", "", "\n"] [] ["", "", ""] }} *Tips [#i62fb6e8] **文字コード変換 [#ab122e39] ***参考情報 [#o467778c] -[[Rubyist Magazine - 標準添付ライブラリ紹介 【第 3 回】 Kconv/NKF/Iconv:http://jp.rubyist.net/magazine/?0009-BundledLibraries#l28]] ***kconvを使う [#eb25f2db] ***nkfを使う [#g1977dbf] -kconvを使う方法は半角カナ→全角カナなどの自動変換が行われる。これを避けるためにはnkfモジュールを直接使う。 #pre{{ #EUCに変換 euc = NKF.nkf('-exm0', str) #SJISに変換 sjis = NKF.nkf('-sxm0', str) #UTF-8に変換 utf8 = NKF.nkf('-wxm0', str) #UTF-16に変換 utf16 = NKF.nkf('-w16xm0', str) }} ''オプションの意味'' ,e/s/w/w16,出力をEUC/SJIS/UTF-8/UTF-16にする ,E/S/W/W16,入力をEUC/SJIS/UTF-8/UTF-16にする ,x/X,半角カナ全角カナ変換を行わない/行う ,m0,MIME encoded-word のデコードを行わない