0

我正在尝试创建一个按字母顺序排列用户单词条目的程序。但是,对用户条目的检查表明,ruby 出于某种原因为每个单词添加了换行符。例如,如果我输入 Dog, Cat, Rabbit 程序返回 ["Cat\n", "Dog\n", "Rabbit\n"] 我如何防止这种情况发生?

 words = []
    puts "Enter a word: "
      until (word = gets).to_s.chomp.empty?
        puts "Enter a word: "
        words << word
      end

    puts words.sort.inspect
4

2 回答 2

2

将您的代码更改为:

until (word = gets.chomp).empty?

你现在这样做的方式:

(word = gets).to_s.chomp.empty?

gets来自键盘输入的字符串,但直到用户按下它才会返回到您的代码中Return,这会在 Windows 上添加换行符或回车符 + 换行符。

to_s没有必要,因为您已经从键盘获取值作为字符串。

chompgets如果您希望所有输入都没有尾随换行符或换行符/回车符,则需要绑定。在测试empty?.

于 2013-02-03T21:42:13.177 回答
0

Ruby 2.4 对此有一个解决方案:

input = gets(chomp: true)
# "abc"
于 2016-12-08T16:49:02.190 回答