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

Получение подстроки в Ruby на x число символов

Я пытаюсь создать некоторый код Ruby, который возьмет строку и вернет новую, с номером x количество символов, удаленных с ее конца - это могут быть фактические буквы, цифры, пробелы и т.д.

Ex: задана следующая строка

a_string = "a1wer4zx"

Мне нужен простой способ получить одну и ту же строку, минус - скажем - 3 последних символа. В приведенном выше случае это будет "a1wer". То, как я делаю это сейчас, кажется очень запутанным:

an_array = a_string.split(//,(a_string.length-2))
an_array.pop
new_string = an_array.join

Любые идеи?

4b9b3361

Ответ 1

Как насчет этого?

s[0, s.length - 3]

Или это

s[0..-4]

изменить

s = "abcdefghi"
puts s[0, s.length - 3]  # => abcdef
puts s[0..-4]            # => abcdef

Ответ 3

Другой вариант - получить список chars строки take ing x chars и join Возвращаясь к строке:

[13] pry(main)> 'abcdef'.chars.take(2).join
=> "ab"
[14] pry(main)> 'abcdef'.chars.take(20).join
=> "abcdef"

Ответ 4

если вам это нужно в рельсах, вы можете использовать first (исходный код)

s = '1234567890'
x = 4
s.first(s.length - x) # => "123456"

существует также last (исходный код)

s.last(2) # => "90"

альтернативно проверьте от/до