首页 > 解决方案 > 尝试在此 Ruby 方法中使用转义字符。没运气

问题描述

首先,我要感谢所有阅读我的 Ruby 问题或过去帮助过我的人。感谢您的帮助和理解。

我在用引号打印我的答案时遇到问题。当我打印出下面的内容时,我得到 KB、MY 和 MLG 不带引号。我尝试为转义字符添加一行以尝试添加引号,但没有任何反应。甚至尝试了 %() 方法和 %Q() 都没有效果。我在这里想念什么?也许我以不正确的方式编写了转义字符来包含引号?

非常感谢!

def to_initials(name)
  newName = name.split(" ").each {|c| print c.chr}.to_s
  withQuotes = "\"" + newName + "\""

  return withQuotes
end


to_initials("Kelvin Bridges")      # => "KB"
puts
to_initials("Michaela Yamamoto")   # => "MY"
puts
to_initials("Mary La Grange")      # => "MLG"

标签: ruby

解决方案


首先,您使用Array.each的是拆分名称。这将直接执行该块,就像forPython/Java/C/etc 中的循环一样。您正在调用print c.chr块,因此它只会立即打印第一个字符。

其次,您可以使用字符串插值来显示字符串中变量的值。例如:

my_var = 1
my_string = "#{my_var}"

这是我编写代码的方式:

def to_initials(name)
  initials = name.split(" ").map {|c| c.chr}.join
  return "\"#{initials}\""
end


kb = to_initials("Kelvin Bridges")      # => "KB"
puts kb
my = to_initials("Michaela Yamamoto")   # => "MY"
puts my
mlg = to_initials("Mary La Grange")      # => "MLG"
puts mlg

推荐阅读