前提・実現したいこと
rubyでシーザー暗号を作る過程で「らいおん」というひらがなをそれぞれ一文字ずつずらしたい。(ひらがな全て一文字ずつずらすというメソッドを作ったうえで。)そして、「ん」は「ぁ」に変換される。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
#!ruby -Ks
chars = [*"ぁ".."ん"]
text = "らいおん"
crypted = text.tr(chars.join, chars.rotate(1).join)
p crypted
発生している問題・エラーメッセージ
うまく一文字ずつずれない。
エラーメッセージ
undefined method `rotate' for #<Array:0x2647108> (NoMethodError) ### 該当のソースコード ```ここに言語名を入力 ソースコード
試したこと
ここに問題に対して試したことを記載してください。
ord rotateを使ったりしたけどうまく反応しなかった。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
再現できないのですが、Rubyのバージョンが1.8とかのものすごく古いものだったりしますか?
1.1.1.1です。
古すぎて出来ないでしょうか?
rotateが追加されたのが1.9.2以降ということなので、それ以前のバージョンでは質問にあるようなエラーが出ます。バージョンアップせずにやる方法については回答がついてるのでそちらを見てください。
> 1.1.1.1です。
??Rubyのそんなバージョンは無いはずです。
ruby -v してください。
すいません。ruby初心者でしてヘルプからバージョン情報を見たら、1.1.1.1だったのでそう勘違いしました。多分1.8.4です。悩ませてしまって、申し訳ないです。
回答1件
あなたの回答
tips
プレビュー