Ruby未定义方法`+';零级:零级
我完全是ruby的初学者,但我无法摆脱这个问题 当我运行代码时,我得到了这些信息,所有这些信息都很好地工作到最后: 输入文本:直到 输入潜台词:ll 文字:这一切都很好,直到潜文字:ll 输出: 4. 十五 nil:NilClass的未定义方法Ruby未定义方法`+';零级:零级,ruby,null,Ruby,Null,我完全是ruby的初学者,但我无法摆脱这个问题 当我运行代码时,我得到了这些信息,所有这些信息都很好地工作到最后: 输入文本:直到 输入潜台词:ll 文字:这一切都很好,直到潜文字:ll 输出: 4. 十五 nil:NilClass的未定义方法+' (回复):18:ininitialize' puts "\nINPUT TEXT:" @text = gets.chomp puts "\nINPUT SUBTEXT:" @subtext = gets.chomp
+'
(回复):18:in
initialize'
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
在Ruby中,当未找到子字符串时,
String#index
不会返回-1;它返回nil
。在i!=-1到,而我
。(这是因为,与其他一些语言不同,Ruby认为值0为true;只有false
和nil
为false。)如果子字符串不存在,Index返回nil。所以这应该解决这个问题
@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
puts i.to_s + ' '
i = @text.index @subtext, i+1
end