Прервать последний символ строки - PullRequest
0 голосов
/ 28 июня 2018

Я хочу создать программу, которая будет каждый раз брать строку и прерывать последний символ и выводить результат на консоль:

При входной строке Hello результат должен быть:

Hello
Hell
Hel
He
H

Это мой код:

def test_string
  puts "Put your string in: "
  string = gets.chomp


  while string.length == 0
    puts string.chop(/.$/)
  end


 end

 puts test_string

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Следующий код не изменяет исходную строку

string = gets.chomp
l = string.length
l.times do |i|
  puts string[0..(l-i-1)]
end
0 голосов
/ 28 июня 2018

Вы также можете создать массив, заполнив его строкой N раз, и каждый раз получать из него символ меньше:

str = 'Hello'
Array.new(str.size) { |index| str[0...str.size - index] }.each { |str| p str }
# "Hello"
# "Hell"
# "Hel"
# "He"
# "H
0 голосов
/ 28 июня 2018

Использование chop!:

string = gets.chomp

# Print full string, e.g. "Hello"
puts string

# Print remaining... e.g. "Hell", "Hel", etc.
while string.length != 0
  puts string.chop!
end
...