Ruby';获取';它可以在多行上工作
使用IRB,我想输入一个多行字符串,以便从中删除某些字符。“gets”只允许一行-多行是否有类似的函数Ruby';获取';它可以在多行上工作,ruby,gets,Ruby,Gets,使用IRB,我想输入一个多行字符串,以便从中删除某些字符。“gets”只允许一行-多行是否有类似的函数 ASCII_project.rb(main):002:0* puts = "What's the text you want to strip?" => "What's the text you want to strip?" ASCII_project.rb(main):003:0> str = gets 我现在想粘贴一段文字,因为新的行不起作用。这就是我想收集多行数据的原因
ASCII_project.rb(main):002:0* puts = "What's the text you want to strip?"
=> "What's the text you want to strip?"
ASCII_project.rb(main):003:0> str = gets
我现在想粘贴一段文字,因为新的行不起作用。这就是我想收集多行数据的原因
这是密码
# encoding: CP850
puts = "What's the text you want to strip?"
str = gets
str.gsub!(/\P{ASCII}/, '')
puts str
你可以用下面的方法来做
$/ = "END"
user_input = STDIN.gets
puts user_input
确保在您认为输入已完成时键入END关键字
同样,这只适用于实际解释器而不是irb。您可以使用此方法,它接受文本直到第一个空行
def multi_gets all_text=""
while (text = gets) != "\n"
all_text << text
end
all_text
end
def multi_获取所有_文本=“”
而(text=get)!=“\n”
所有文本str=您可以像这样在$stdin
上使用readlines()
> $stdin.readlines
Mit Wohnungen, mit Bergen, Hügeln, Flüssen,
Solang ichs deutlich sah, ein Schatz der Freuden;
Zuletzt im Blauen blieb ein Augenweiden
An fernentwichnen lichten Finsternissen.
# ^D
=> ["Mit Wohnungen, mit Bergen, Hügeln, Flüssen,\n",
"Solang ichs deutlich sah, ein Schatz der Freuden;\n",
"Zuletzt im Blauen blieb ein Augenweiden\n",
"An fernentwichnen lichten Finsternissen.\n"]
嗯,只要打几次电话就行了?如果不是通过换行符,该方法如何知道何时停止读取?这是RubyCan中唯一可行的解决方案。您可以解释$/的作用吗?@Joseph这是一个ruby全局变量,由gets和readline用作分隔符。这是对终止字符过程的良好封装。您的示例代码中的标准使用了错误的变量名。我本来会编辑它的,但它不超过6个字符limit@Will谢谢,没人注意到。
str = <<-EOF
Your multi line
text goes here
.....
EOF
> $stdin.readlines
Mit Wohnungen, mit Bergen, Hügeln, Flüssen,
Solang ichs deutlich sah, ein Schatz der Freuden;
Zuletzt im Blauen blieb ein Augenweiden
An fernentwichnen lichten Finsternissen.
# ^D
=> ["Mit Wohnungen, mit Bergen, Hügeln, Flüssen,\n",
"Solang ichs deutlich sah, ein Schatz der Freuden;\n",
"Zuletzt im Blauen blieb ein Augenweiden\n",
"An fernentwichnen lichten Finsternissen.\n"]