ruby如何打印而不为每行保留换行符空间?

ruby如何打印而不为每行保留换行符空间?,ruby,Ruby,ruby如何打印而不为每行保留换行符空间 这是我的档案 name1;name2;name3 name4;name5;name6 我有这个命令 File.open("text2xycff.txt", "r") do |fix| fix.readlines.each do |line| parts = line.chomp.split(';') input3= zero File.open('text2xyczzzz2.txt', 'a+') do |f| f.pu

ruby如何打印而不为每行保留换行符空间

这是我的档案

name1;name2;name3

name4;name5;name6
我有这个命令

File.open("text2xycff.txt", "r") do  |fix|
  fix.readlines.each do |line|
    parts = line.chomp.split(';') 

input3= zero

 File.open('text2xyczzzz2.txt', 'a+') do |f| 
   f.puts  parts[0] ,  parts[1], parts[2]  ,input3
 end



end

end
这是我的输出

name1

name2

name3

zero

name4 

name5

name6

zero
我需要输出这个

name1;name2;name3;zero

name4;name5;name6;zero

请帮助我解决此问题

如果使用逗号分隔的参数调用
put
,则每个参数将打印在不同的行上

您可以在此处()使用ruby字符串插值:


f.puts“#{parts[0]};#{parts[1]};#{parts[3]};#{input3}”

如果使用逗号分隔的参数调用
puts
,则每个参数将打印在不同的行上

您可以在此处()使用ruby字符串插值:


f.puts“#{parts[0]};#{parts[1]};#{parts[3]};#{input3}”

您有两种解决方案

第一个使用
puts
,与您当前的操作相同:

File.open('yourfile.txt', 'a+') { |f|
    f.puts "#{parts[0]}#{parts[1]}#{parts[2]}#{input3}"
}
第二种方法使用
write
而不是
put

File.open('yourfile.txt', 'a+') { |f| 
    f.write parts[0]
    f.write parts[1]
    f.write parts[2]
    f.write input3
}

你有两个解决方案

第一个使用
puts
,与您当前的操作相同:

File.open('yourfile.txt', 'a+') { |f|
    f.puts "#{parts[0]}#{parts[1]}#{parts[2]}#{input3}"
}
第二种方法使用
write
而不是
put

File.open('yourfile.txt', 'a+') { |f| 
    f.write parts[0]
    f.write parts[1]
    f.write parts[2]
    f.write input3
}
尝试:

我不知道为什么在指定需要以下输出时,要用分号拆分字符串。您只需在字符串末尾追加“zero”而不是解析数组就可以了

名称1;名称2;名称3;零

名称4;名称5;名称6;零

尝试:

我不知道为什么在指定需要以下输出时,要用分号拆分字符串。您只需在字符串末尾追加“zero”而不是解析数组就可以了

名称1;名称2;名称3;零


名称4;名称5;名称6;零

您可以指定一个
if
语句来检查

例如:

arr = ["name1", "name2", "name3", "zero", "name4", "name5", "name6", "zero"];
arr.each { |x|
  if x != "zero" then
    print x
  else
    puts x
  end
}
输出:

name1name2name3zero
name4name5name6zero
打印
将以内联方式打印

put
将在新行上打印


只要在代码中实现这个逻辑,就可以了。

您可以指定一个
if
语句来检查
零值

例如:

arr = ["name1", "name2", "name3", "zero", "name4", "name5", "name6", "zero"];
arr.each { |x|
  if x != "zero" then
    print x
  else
    puts x
  end
}
输出:

name1name2name3zero
name4name5name6zero
打印
将以内联方式打印

put
将在新行上打印


只要在代码中实现这个逻辑,就可以了。

一个更简单的方法是在每行中添加一些内容:

File.open("text2xycff.txt", "r") do  |input|
  File.open('text2xyczzzz2.txt', 'a+') do |output| 
    input.readlines.each do |line|
      output.puts(line.chomp + ';zero')
    end
  end
end
或者,如果您想要实际解析内容,这提供了一个清理的机会:

File.open("text2xycff.txt", "r") do  |input|
  File.open('text2xyczzzz2.txt', 'a+') do |output| 
    input.readlines.each do |line|
      parts = line.chomp.split(/;/)
      parts << 'zero'

      output.puts(parts.join(';'))
    end
  end
end
File.open(“text2xycff.txt”,“r”)do|输入|
File.open('text2xyczz2.txt','a+')do | output |
input.readlines.each do|行|
parts=line.chomp.split(/;/)

parts一种更简单的方法是在每行中添加一些内容:

File.open("text2xycff.txt", "r") do  |input|
  File.open('text2xyczzzz2.txt', 'a+') do |output| 
    input.readlines.each do |line|
      output.puts(line.chomp + ';zero')
    end
  end
end
或者,如果您想要实际解析内容,这提供了一个清理的机会:

File.open("text2xycff.txt", "r") do  |input|
  File.open('text2xyczzzz2.txt', 'a+') do |output| 
    input.readlines.each do |line|
      parts = line.chomp.split(/;/)
      parts << 'zero'

      output.puts(parts.join(';'))
    end
  end
end
File.open(“text2xycff.txt”,“r”)do|输入|
File.open('text2xyczz2.txt','a+')do | output |
input.readlines.each do|行|
parts=line.chomp.split(/;/)
部分