gpt4 book ai didi

ruby - 如何拆分字符串、遍历它并输出连接版本

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:08 25 4
gpt4 key购买 nike

我正在编写一种加密方法。我正在为 caesar_cipher 编写代码。我写的代码如下:

def caesar(string, shift = 0)
alphabet = ("a".."z").to_a
letters = string.split("")
blank = []
letters.map do |letter|
blank << alphabet[(alphabet.index(letter) + shift) % alphabet.length]
end
puts blank.join
end

当我传递一个由多个单词组成的字符串时出现此错误:

block in `caesar_cipher': undefined method `+' for nil:NilClass (NoMethodError)

我知道 tr 可以解决我的问题,如果我要创建一个类的话。我有一个独立的方法,适用于 caesar_cipher 的每个角度,除了句子。我无法拆分、迭代然后加入这些词。任何输入都会帮助我避免这种情况。

最佳答案

在使用了回复中的建议后,我能够将我的代码调整为以下内容,使其适用于句子而不是一个单词:

def caesar(string, shift=0)
alphabet = ("a".."z").to_a
blank = string.each_char.map do |letter|
alphabet.include?(letter) ? alphabet[(alphabet.index(letter) + shift) % alphabet.length] : letter
end
puts blank.join
end

关于ruby - 如何拆分字符串、遍历它并输出连接版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com