在使用" "分隔单个字符串后,逐行打印ruby数组的元素.条件



我有一个字符串,使用以下形式的反引号实现:

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

最新更新