日本語の文字列反転
http://d.hatena.ne.jp/hakobe932/20060719/1153329395
なんか楽しそうなことをやっているので,Rubyでもや ら い で か.
残念ながら,Rubyではエンコードがどーとか,そーゆーモジュールがあるのかどーかは知らん.
何はともあれ,やってみなけりゃ始まらない.やってみますのミ○リです.
http://ja.wikipedia.org/wiki/UTF-8を参照するに,UTF-8な日本語は3バイトということだ.んじゃ,こうすりゃごり押しになるけど,解けるか?
- 3バイトごとにsplit
- 反転して文字列に
とりあえずこれでいけるのかしら.
str = '参考文献はウィキペディア' splited_str = str.split(/(?=(.{3})+$)/) puts splited_str.reverse.to_s => アアィアデアペアキアィアウアはア献ア文ア考ア参
文字の間に「ア」が入ると言う不思議(少なくともボクには不思議に見える).どうも,末尾の文字がわざわざ間に入り込んでいるみたいだ.なんていうか,splitが怪しい.splitで「位置にマッチする」ってのは,そもそもこんなやり方で良いのかがわからないので,マニュアルを読む.
一分後,splitのマニュアルを読んでなんかわかった気がする.てことで,こんな簡単に.
$KCODE = 'u' str = '参考文献はウィキベディア' puts str.split(//).reverse.to_s => アィデベキィウは献文考参
KCODEかよ!もしかしたら,こんなこともできるかも.
$KCODE = 'u' str = '参考文献はウィキベディア' puts str.reverse => ??㣂㇃㙃㭂㣂㦂㯁㮌燖惀肏?
流石に駄目だった.
てかKCODE重要.
$KCODE = 'u' str = '参考文献はWikipedia' puts str.split(//).reverse.to_s => aidepikiWは献文考参
当たり前だけど,日本語と英語の混じった文ですら簡単に反転できた.ほんと,プログラミングが簡単にできる言語だと思った.