本ページはプロモーションが含まれています

Ruby 文字列をバイト毎に処理

文字列をバイト毎に繰り返し処理を使う場合、String#each_byte を使うのだが、そのまま表示させると

irb(main):001:0> "abcdefg".each_byte {|elm| p elm }
 97
 98
 99
 100
 101
 102
 103

整数で表示されてしまうので、Integer#chr を使う。

irb(main):002:0> "abcdefg".each_byte {|elm| p elm.chr }
 "a"
 "b"
 "c"
 "d"
 "e"
 "f"
 "g"

String#bytes の場合は、Array#mapメソッドを使う。

irb(main):008:0> "abcdefg".bytes.map {|elm| elm.chr }
 => ["a", "b", "c", "d", "e", "f", "g"]

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) [ 伊藤淳一(プログラミング) ]


ゼロからわかるRuby超入門 はじめてのプログラミング (かんたんIT基礎講座) [ 五十嵐邦明 ]