Подтвердить что ты не робот

Как удалить конечную запятую?

Указанные строки:

Bob
Bob,
Bob
Bob Burns,

Как вы можете вернуть это сообщение без запятой?

Bob
Bob
Bob
Bob Burns

Кроме того, я бы хотел, чтобы этот метод не прерывался, если передал нуль, просто чтобы вернуть нуль?

def remove_trailing_comma(str)
  !str.nil? ? str.replace(",") :nil
end
4b9b3361

Ответ 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(/,$/, '')