Как удалить конечную запятую?
Указанные строки:
Bob
Bob,
Bob
Bob Burns,
Как вы можете вернуть это сообщение без запятой?
Bob
Bob
Bob
Bob Burns
Кроме того, я бы хотел, чтобы этот метод не прерывался, если передал нуль, просто чтобы вернуть нуль?
def remove_trailing_comma(str)
!str.nil? ? str.replace(",") :nil
end
Ответы
Ответ 1
Моя мысль заключалась бы в использовании string.chomp:
Возвращает новую строку с указанным разделителем данных, удаленным из конца строки (если присутствует).
Это делает то, что вы хотите?
def remove_trailing_comma(str)
str.nil? ? nil : str.chomp(",")
end
Ответ 2
использовать String # chomp
irb(main):005:0> "Bob".chomp(",")
=> "Bob"
irb(main):006:0> "Bob,".chomp(",")
=> "Bob"
irb(main):007:0> "Bob Burns,".chomp(",")
=> "Bob Burns"
UPDATE:
def awesome_chomp(str)
str.is_a?(String) ? str.chomp(",") : nil
end
p awesome_chomp "asd," #=> "asd"
p awesome_chomp nil #=> nil
p awesome_chomp Object.new #=> nil
Ответ 3
Вы можете сделать что-то вроде этого:
str && str.sub(/,$/, '')