我有一个字符串,使用以下形式的反引号实现:
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
在一行中。
你能帮帮我吗?
答案 0 :(得分:0)
问题是当您使用\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
这将为您提供正确的结果。
答案 1 :(得分:0)
感谢@AndreyDeineko,我们有:
"问题是当您使用\ n进行拆分时,如果有两个\ n字符,那么空的""被添加到数组中。怎么会? a =" 1 \ n2 \ n3 \ n4 \ n&#34 ;; a.split(" \ n")#=> [" 1"," 2"," 3"," 4"]。
因此,array.each { |a| a }
将适合你"
它对我来说不起作用100%,但是使用他的答案,我设法达到了所需的结果:
array.each { |a| a }
puts array