2013-02-15 2 views

ответ

1
str = "let's upcase last 4 letters" 
length = str.length 
str = str[0..(length-5)] + str[(length-4)..length].upcase 
# let's upcase last 4 letTERS 
+1

Вы не должны получить длину строки первой. Вы можете просто выполнить 'str [0 ..- 5] + str [-4,4] .upcase'. Вы все равно можете проверить, что исходная строка имеет длину не менее 4 символов. – Mischa

+0

Спасибо, я все еще изучаю рубин. –

+0

Добро пожаловать. – Mischa

2
s = 'string' 
"#{s[0..-5]}#{s[-4..-1].upcase}" # => stRING 

Чтобы предотвратить ошибку со строками короче 4 символов, которые вы можете сделать это:

s = 'foo' 
s.length > 4 ? "#{s[0..-5]}#{s[-4..-1].upcase}" : s.upcase # => FOO 

ЗАКАНЧИВАТЬ Ruby API для объяснения.

0

Update

s = "string" 
s.size > 3 ? s[0..-5]+s[-4..-1].upcase : s.upcase # "stRING"