簡體   English   中英

簡單的crypt學習ruby?

[英]Simple crypt for learning ruby?

我想編寫一個程序來獲取用戶輸入,將每個字符向右移動一個(a = b,b = c,c = d 等......)。 如果沒有像這樣間隔的輸入,我將如何做到這一點 = hellowo r l d。

確保你也得到 z->a 。 像這樣:

"hallo world zzz".tr("a-z", "b-za")

如果要將一個單詞中的所有字符 position 向右移動,可以使用數組 class 中的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"

希望對您有所幫助……兩年后!

對於二進制字符串:

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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM