Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。
Q&A
解決済
2回答
4058閲覧
総合スコア17
0グッド
0クリップ
投稿2014/08/18 15:00
0
Rubyで文字列中のバイトを取り出すにはどうすればよいでしょうか? 何か良い方法があれば教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
ベストアンサー
lang1"あいう".unpack("C*") # 文字列をバイト列と見なして数値配列に変換 2=> [227, 129, 130, 227, 129, 132, 227, 129, 134] 3 4"あいう".bytes # 上に同じ 5=> [227, 129, 130, 227, 129, 132, 227, 129, 134] 6 7"あいう".unpack("x4C") # 5バイト目だけ取り出す 8=> [129] 9 10"あいう".getbyte(4) # 上とほぼ同様 11=> 129 12 13"あいう".byteslice(4) # 上とちょっと違う。5バイト目を文字として取り出す 14=> "\x81"
lang
1"あいう".unpack("C*") # 文字列をバイト列と見なして数値配列に変換 2=> [227, 129, 130, 227, 129, 132, 227, 129, 134] 3 4"あいう".bytes # 上に同じ 5=> [227, 129, 130, 227, 129, 132, 227, 129, 134] 6 7"あいう".unpack("x4C") # 5バイト目だけ取り出す 8=> [129] 9 10"あいう".getbyte(4) # 上とほぼ同様 11=> 129 12 13"あいう".byteslice(4) # 上とちょっと違う。5バイト目を文字として取り出す 14=> "\x81"
投稿2014/08/27 16:03
総合スコア85768
回答へのコメント
2014/09/02 04:22
each_byteメソッドというのがありますのでそちらを使えばいけるかと思います。
例えば、 str = "る" str.each_byte {|b| printf("%x ", b) } 実行したら e3 82 8b このように出力結果を16進数で表示してくれます。
str = "る" str.each_byte {|b| printf("%x ", b) }
e3 82 8b
投稿2014/08/20 02:30
総合スコア229
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.37%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
Ruby 文字列中のバイトを取り出すにはどうすればよい?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/09/02 04:22