0

我想制作一个程序,它每次都接受字符串并砍掉最后一个字符并将结果打印到控制台:

输入字符串为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
4

3 回答 3

4

使用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
于 2018-06-28T11:43:29.800 回答
2

以下代码不会修改原始字符串

string = gets.chomp
l = string.length
l.times do |i|
  puts string[0..(l-i-1)]
end
于 2018-06-28T11:58:08.273 回答
2

您还可以创建一个数组,用字符串 N 次填充它,并且每次都从中少一个字符:

str = 'Hello'
Array.new(str.size) { |index| str[0...str.size - index] }.each { |str| p str }
# "Hello"
# "Hell"
# "Hel"
# "He"
# "H
于 2018-06-28T12:01:55.937 回答