私は、ユーザーの入力を受け取り、各文字を右にシフトするプログラムを書いてみたい(a = b、b = c、c = dなど)。入力をこのように間隔を空けずに、どうすればいいでしょうか?ルビーを学ぶための単純な陰謀?
答えて
:このよう
input = ...
encrypted = input.bytes.map {|b| (b == 255 ? 0 : b+1).chr }.join
decrypted = encrypted.bytes.map {|b| (b == 0 ? 255 : b-1).chr }.join
decrypted == input # => true
私はあなたに解決策を書いていないよ、それは本当に簡単です。
Rubyの文字列操作について読む必要があります。
http://blog.grayproductions.net/articles/ruby_19s_string
http://ruby-doc.org/core/classes/String.html(tr
を探してください)
、あなたがしたい場合は、最後の一つは1.8.7と1.9.1
http://abhilekh.wordpress.com/2009/10/22/ruby-1-8-7-vs-ruby-1-9-1/
シンプルな暗号化に興味がある方は、簡単にプログラムできるRC4を見て、シーザーのサイファーよりもはるかに強力です。 – rossum
の違いについて良い記事です単語内のすべての文字を1桁右にシフトするには、Arrayクラスのrotate
メソッドを使用して文字列に戻します。
irb(main):008:0> word = "helloworld"
=> "helloworld"
irb(main):009:0> array = []
=> []
irb(main):010:0> word.each_char { |c| array << c }
=> "helloworld"
irb(main):011:0> array
=> ["h", "e", "l", "l", "o", "w", "o", "r", "l", "d"]
irb(main):012:0> array = array.rotate(-1)
=> ["d", "h", "e", "l", "l", "o", "w", "o", "r", "l"]
irb(main):014:0> array.join('')
=> "dhelloworl"
希望は2年後です!
Lolありがとう!私はこの質問を書いたことを覚えていないが、私は再びルビーを学ぼうとしているので、確かにこれを行うだろう! –
- 1. 陰謀団「データファイル」
- 2. ggplot別の伝説や陰謀
- 3. Pythonを学ぶ:単純な関数を書く
- 4. 新しい言語を学ぶための簡単な教訓
- 5. Netwireを学ぶための簡単な演習?
- 6. Jupyterで陰謀的に使用する
- 7. 単純な数学のゲーム
- 8. drupal7を学ぶ簡単なモジュール開発
- 9. エントリレベルのJavascriptを学ぶためのベストウェブサイト?
- 10. RaphaelJsを学ぶための良いリファレンス
- 11. ビットプログラミングを学ぶためのリソースは?
- 12. Emacsを学ぶためのリソース
- 13. iCloudを学ぶためのヘルプ
- 14. Cを深く学ぶためのプログラミングリソース
- 15. チェリーピープルを学ぶためのヒント
- 16. bashスクリプトの単純な数学計算
- 17. 単純なゲームのための深い強化学習パラメータとトレーニング時間
- 18. 単純な数学演算Python
- 19. 始めにHTMLを学ぶ前に学ぶべきこと
- 20. 単純なクエリのためのHibernate
- 21. 単純なカードゲームのためのPythonネットワーキングライブラリ
- 22. SEOのテクニックを学ぶためのベストと簡潔なリソース/リンク?
- 23. 高度なデバッグ手法を学ぶためのヒントやリソース
- 24. 形式を学ぶための高品質なRコード
- 25. ルビーでディープコピーが必要な最も単純な例を提供
- 26. ソーシャルソフトウェアを作るために必要な人類学を学ぶには?
- 27. どのようにアンドロイドの陰謀の影の効果を作るには?
- 28. Javaを学ぶのを始める
- 29. 単純な数学が間違っていた
- 30. Cを学ぶことなくObjective-cを学ぶC
あなたが試したことを私たちに見せてください。 –