Как «преобразовать» массив в предложение? - PullRequest
6 голосов
/ 22 августа 2011

Я использую Ruby on Rails v3.0.9, и я хотел бы «преобразовать» массив строк в предложении, включая знаки препинания.То есть, если у меня есть массив, подобный следующему:

["element 1", "element 2", "element 3"]

Я хотел бы получить \ build:

# Note: I added 'Elements are: ' at the begin, ',' between elements and '.' at
# the end.
"Elements are: element 1, element 2, element 3."

Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

Rails имеет Array#to_sentence, который будет делать то же самое, что и array.join(', '), и дополнительно добавит «и» перед последним элементом.

puts "Elements are: #{["element 1", "element 2", "element 3"].to_sentence}."

Остальное, как вы можете видеть, это просто собрать его вместе.

1 голос
/ 20 января 2016

@ coreyward ответ близок, но вывод его предложения не соответствует запрошенному выводу. Это даст вам именно то, что вы хотите:

puts "Elements are: #{array.to_sentence(last_word_connector: ', ')}."

См. документы для дополнительных примеров и опций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...