You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby2.6.3如何接收用户输入的多个段落?

解决Ruby中gets无法读取多段输入的问题

哈哈,这个坑我之前踩过!Ruby里的gets方法默认只会读取一行输入,遇到第一个换行符就停止读取了,所以你输入的第二段内容其实还留在输入缓冲区里,没被gets捞出来~

要实现读取多段内容的需求,有两种常用方法:

  • 方法一:使用$stdin.read读取全部输入
    这个方法会一次性读取所有输入内容,直到用户输入结束符(Unix/Linux/macOS按Ctrl+D,Windows按Ctrl+Z)。修改后的代码如下:

    print("Paste your text here: ")
    essay = $stdin.read
    puts essay
    

    当你粘贴完多段内容后,按下对应的结束键,就能得到包含所有换行的完整文本啦,输出就是你期望的"I like cake.\nIt makes me happy.\n"格式。

  • 方法二:循环读取每行直到触发停止条件
    如果希望用户手动输入时,能通过输入空行来结束输入(适合非粘贴场景),可以用循环读取每一行:

    print("Paste your text here (enter empty line to finish): ")
    essay = []
    while line = gets
      break if line.chomp.empty? # 遇到空行就停止读取
      essay << line
    end
    puts essay.join
    

    这样用户输入完所有段落,敲一个空行就能结束,最终输出也是完整的多段文本。

内容的提问来源于stack exchange,提问作者I_love_coffee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:25:45