我是红宝石的初学者,但我无法摆脱这个问题,当我运行代码时,我得到这些,这一切都运行良好,直到结束:
输入文本:一切顺利,直到
INPUT SUBTEXT:ll
TEXT:这一切都运行良好,直到SUBTEXT:ll
输出:4 15
undefined方法+' for nil:NilClass
(repl):18:in初始化'
puts "\nINPUT TEXT:"
@text = gets.chomp
puts "\nINPUT SUBTEXT:"
@subtext = gets.chomp
puts "\nTEXT: " + @text
puts "SUBTEXT: " + @subtext
puts "\n"
i = @text.index (@subtext)
puts "OUTPUT:"
while i != -1
puts i.to_s + ' '
i = @text.index @subtext, i+1
end
Run Code Online (Sandbox Code Playgroud)
在Ruby中,String#index当找不到子字符串时不返回-1; 它返回nil.将你的病情while i != -1改为while i.(这是有效的,因为与其他语言不同,Ruby认为值0为真;只有false并且nil为假.)