即使使用“打印”,也无法在红宝石的同一行上打印数据。应使用什么?

时间:2018-09-20 04:57:57

标签: ruby

我正在练习一个红宝石项目。我必须以以下样式打印数据:

   Doctor    Patient     Timing
   John K     Jerry    16:00 to 17:00

我的代码是:

puts 'Enter Doctor\'s Name'
  @doc_name1 = gets
  if @doc_name1 == @doc_name
    puts "Doctor \t Patient \t Timing"
    print "#{@doc_name}\t #{@patient_name}\t"
    printf('%.2f', @from)
    print ' to '
    printf('%.2f', @to_time)
    puts
  else
    puts 'No such doctor available'
  end

但是它的输出如下:

Doctor   Patient     Timing
Jim
     jerry
    16.00 to 17.00




如果在其他文件中单独使用,则代码可以正常工作。 怎么了?

1 个答案:

答案 0 :(得分:2)

您需要使用chomp方法删除所有换行符。

@doc_name1 = gets.chomp

@病人名称也以某种方式包含换行符 您可能也想砍掉

print "#{@doc_name}\t #{@patient_name.chomp}\t"

如果您想知道您的字符串究竟由什么组成,请尝试使用inspect方法。

@doc_name.inspect
#=> "\"Jim\\n\""