Заглавная буква предложения


Существует ли метод (возможно, в какой-то библиотеке Rails) или простой способ, который прописывает первую букву строки, не влияя на состояние верхнего/нижнего регистра остальной части строки? Я хочу использовать его для капитализации сообщений об ошибках. Я ожидаю чего-то вроде этого:

"hello iPad" #=> "Hello iPad"
4 2

4 ответа:

В Ruby есть метод capitalize, но он будет понижать остальную часть строки. Вы можете написать свой собственный иначе:

class String
  def capitalize_first
    (slice(0) || '').upcase + (slice(1..-1) || '')
  end

  def capitalize_first!
    replace(capitalize_first)
  end
end

Edit: добавлен capitalize_first! вариант.

Довольно неуклюже, но это работает:

str = "hello IiPad"
str[0] = str[0].upcase #or .capitalize

Благодаря другим ответам я понял некоторые моменты, которые мне нужно знать, а также то, что нет встроенного способа. Я заглянул в источник camelize в активной поддержке рельсов, как намекнул Виталий Землянский, который дал мне подсказку: то есть использовать регулярное выражение. Я решил использовать это:

sub(/./){$&.upcase}

Попробуйте это

"hello iPad".camelize