我有一个字符串,使用以下形式的反引号实现:
output = `git log`
然后,我将结果拆分到有"n"的地方,并将结果放入格式为
的数组中:array = output.split("n")
然后,我只是试图在屏幕上输出结果,然而,当我使用
时array.each do |a|
puts a
end
我得到作为结果的双行形式:
result after puts
(empty line)
result after puts etc
,当我的首选结果是单行形式:
result after puts
result afters puts etc
我试着用print执行这个,但是我得到:
result after puts result after puts etc
你能帮帮我吗?
问题是当您使用n
拆分时,如果有两个n
字符,则将空""
添加到数组中。
eg: test = ["this","","is","test"]
如果你有,
test.each do |a|
puts a
end
The o/p will be,
this
// a new line will come here.
is
test
所以你应该拒绝空值
test2 = test.reject{ |value| value == ""}
test2.each do |a|
puts a
end
结果是,
this
is
test
同样,
output = `git log`
array = output.split("n")
array2 = array.reject{ |value| value == ""}
array2.each do |a|
puts a
end
这将给你正确的结果
感谢@AndreyDeineko,我们有了:
"问题是,当你使用n分割,如果有两个n字符,然后一个空的"被添加到数组。Howcome吗?A = "1n2n3n4n"A.split ("n") #=> ["1", "2", "3", "4"].
因此,数组。每个{ |a| a }
将为您工作"
这对我来说不是100%有效,但使用他的答案,我设法达到了所需的结果,这是:
array.each { |a| a }
puts array