我正在尝试解决一些Ruby挑战,我遇到了一些低级别(我猜?)数字字符转换的大问题。
想象一下,你需要编写程序,这会打印在屏幕上的句子中:
“Jon Doe出生于2017年!”
仅使用以下字符 [a-zA-Z。\ n] (小字母和大字母,点,空格和新行)
事实上,我不知道如何开始寻找答案。
是否使用pack
/ unpack
方法?或者是否有任何我无法找到的解决方案?
“写程序”加粗是有原因的。问题是,Ruby中程序的最简单定义是什么?
答案 0 :(得分:2)
编写一个只使用字母,点,空格和换行符打印字符串的程序起初看起来似乎不太可能,但实际上并不那么难。
小写和大写字母允许您调用Kernel
方法(如print
和puts
)以及keywords,例如nil
,{{1} }和false
。点允许您使用显式接收器调用方法。 Space允许您将参数传递给方法。 Newline分隔命令。
让我们尝试获得一个“a”:
true
现在让我们打印“abc”:
false #=> false
false.inspect #=> "false"
false.inspect.chars #=> ["f", "a", "l", "s", "e"]
false.inspect.chars.rotate #=> ["a", "l", "s", "e", "f"]
false.inspect.chars.rotate.first #=> "a"
输出:
print false.inspect.chars.rotate.first
print false.inspect.chars.rotate.first.succ
print false.inspect.chars.rotate.first.succ.succ
puts
你明白了。
是的,也可以使用类似的方法打印空格,标点符号和数字。但我把它留给你。看看可用的方法并具有创造性。
有关如何在不使用空格的情况下打印字符串的其他要点,只需abc
。