好吧,我有以下的,非常簡單的代碼:循環結束後刪除空行
f = "String1\n\n\nString2\n\n\n"
f.each_line do |t|
t.delete! "\n"
puts t.inspect
end
它消除了\ n,但留下的空間
"String1"
nil
nil
"String2"
nil
nil
我希望它看起來像這樣:
"String1"
"String2"
在此先感謝您的幫助。
好吧,我有以下的,非常簡單的代碼:循環結束後刪除空行
f = "String1\n\n\nString2\n\n\n"
f.each_line do |t|
t.delete! "\n"
puts t.inspect
end
它消除了\ n,但留下的空間
"String1"
nil
nil
"String2"
nil
nil
我希望它看起來像這樣:
"String1"
"String2"
在此先感謝您的幫助。
您可以通過\n
split的字符串,然後reject任何空行:
f = "String1\n\n\nString2\n\n\n"
f.split("\n").reject { |i| i.empty? }
#=> ["String1", "String2"]
你會結束了,你可以輸出你想要的數組。
工作得很好。謝謝 – nomoreflash 2010-09-22 22:00:46
你能分裂字符串嗎? – nomoreflash 2010-09-22 22:34:55
f = "String1\n\n\nString2\n\n\n"
f.each_line.collect(&:chomp).reject(&:empty?)
#=> ["String1", "String2"]
的collect(&:chomp)
刪除行結尾。 reject(&:empty?)
丟掉所有的空行。
謝謝,一定會有用你的意見。 – nomoreflash 2010-09-22 22:01:41
你很親切。 @ jordinl的回答顯然更好。 – 2010-09-22 22:34:58
不,它不留下任何空格。它返回一個空字符串。你在找什麼結果? – Matchu 2010-09-22 21:46:31
你確定你的確切代碼在輸出中產生'nil',而不是''「'?它不應該這樣做。 – 2011-02-28 00:16:38