返回字符串句子的单个元素数组

时间:2015-04-26 17:30:21

标签: ruby arrays string

我正在创建一个解密秘密消息'i want a coke!'的程序。以下是我的代码示例:

class Decoder
  def initialize(coded_message)
    @input = coded_message.downcase.split('')
    @symbols = %w(@ # $ % ^ & *)
    @alph = ('a'..'z').to_a.join
  end
  def decoded_symbol
    @input.map! do |symbols|
      if @symbols.include?(symbols)
       symbols = " "
    else
       symbols = symbols
     end
   end
 end
 def decoded_cipher
  @input.map! do |char|
      if @alph.include?(char)
          char = @alph[@alph.index(char) - 4]
      end
      char = char
    end
 end
 def run
     decoded_cipher
     decoded_symbol
 end
end

Decoder.new("m^aerx%e&gsoi!").run

然而,这是终端返回的内容:

=> ["i", " ", "w", "a", "n", "t", " ", "a", " ", "c", "o", "k", "e", "!"]

我试图将其作为单句返回。我一直在使用run方法来查看是否可以更改@input输出,但无法获得任何效果。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:3)

方法1/x没有明确的decoded_symbol语句,因此数组return用作返回值。

在方法的末尾添加一行,以便返回连接的字符串:

@input