gpt4 book ai didi

arrays - 从 array1 读取 从 array2 写入

转载 作者:太空宇宙 更新时间:2023-11-03 18:07:19 25 4
gpt4 key购买 nike

只是作为初学者学习一些基本的 Ruby 概念。并不是真正在寻找这样的代码,而是寻找以下问题背后的一些基本原则(如果需要,显然可以随意用代码表达自己:0)

在一个简单的编辑文本练习中,用户输入一些文本,然后输入要编辑的词,我对此很满意,并且可以通过多种方式使其发挥作用。然而……

为了处理用户可以为文本或编辑单词输入大写和/或小写字母的可能性,我需要创建变量 .downcase! 再次没有问题。但是,如果程序运行后,您想将单词恢复到原来的状态怎么办?

我想也许你需要为原始文本创建一个数组,其中每个单词在数组中都有一个索引,用小写字母创建一个对应的数组,如果一个单词没有被编辑,那么你会比较索引从小写数组中写入原始数组中的相应索引...这听起来正确还是我想多了,有没有更简单的方法?

谢谢你的帮助

puts " What is your message"
text1 = gets.chomp
text2 = text1.downcase
puts "What is your secret word"
redact = gets.chomp.downcase!
words = text2.split (" ")
words.each do |x|
if
x == redact
print "REDACTED" + " "
else
print x + " "
end
end

我已经添加了我的工作代码,你可以看到我已经将原始文本 1 与文本 2 分开,这并不是绝对必要的,但要保持原始格式

最佳答案

您的解决方案听起来可行,作为初学者,编写这样的完整解决方案可能会有用。但不要忘记,ruby 可以为您做很多有趣的事情。

假设我们将输入输入到 sentence 中,要编辑的字符串存储在 redact 中。

我们可以做这么简单的事情:

sentence.gsub(/#{redact}/i, "*" * redact.length)

gsub查找所有出现的第一个参数并将其替换为第二个参数,返回一个新字符串。首先请注意,我们将编辑后的字符串用作 regular expression。对于第一个 arg 和 i 表示它应该匹配不区分大小写,如您所愿。现在,第二个 arg 只是一串与编辑后的字符串长度相等的星号。

例如,如果我们有以下内容:

sentence = 'this is My Sentence'
redact = 'my'
puts sentence.gsub(/#{redact}/i, "*" * redact.length)

上述方法将打印this is ** Sentence

只需注意一件事:此正则表达式将匹配所有出现的字符串。例如,如果 redact = 'is',生成的句子将是 th** ** My Sentence。如果这不是预期的用例,您可以重写正则表达式来避免这种情况。

关于arrays - 从 array1 读取 从 array2 写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162827/

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