я получил предложение так:Сожмите слова сломанных пробелов, не затрагивая другие слова в предложении
The fox j u m p e d over the big b r o w n boar !
Я хочу изменить это в:
The fox jumped over the big brown boar !
(Примечание - пространства раздавленных когда в середине, но оставлено между полными словами и восклицательным знаком)
Я написал этот код для этого:
str = 'The fox j u m p e d over the big b r o w n boar !'
prev_char = '0'
prev_prev_char = '0'
next_next_char = '0'
new_str = ''
(0..(str.length)).each do |index|
t_char = str[index]
prev_char = index > 0 ? str[index-1] : '0'
prev_prev_char = index > 1 ? str[index-2] : '0'
next_next_char = index-1 < str.length ? str[index+2] : '0'
new_str = "#{new_str}#{t_char}" unless t_char == ' ' && prev_char != ' ' && prev_prev_char == ' ' && next_next_char == ' '
end
results = new_str.split(' ').join(' ')
p (results == 'The fox jumped over the big brown boar !')
Но я уверен, что есть лучший или более умный подход. Какие-либо предложения?
Что ожидается от 'A fox j u m p e d ...'? – Toto
@ M42 Я ожидаю, что это будет «Лисица прыгнула ...» –
Тогда каково правило для объединения букв? Почему «f o x» становится «лисой», а не «afox»? – Toto