删除" \ n"取决于某些情况从字符串

时间:2015-07-13 08:38:23

标签: arrays ruby string newline

我使用各种函数的输出构建了这个字符串,每个函数都返回字符串:

[resource_name, 
 duration, 
 project_name, 
 total_hours, 
 details, 
 booker, 
 user_details].join("\n") 

这些函数中的每一个都返回一串信息,这些信息作为一个整体构建了一条通知消息。我努力实现的是每个字符串由一个新的行字符连接,但有时函数返回一个空字符串,因为没有指定信息。例如,如果未指定project_name,则字符串将为空。

如何删除整行,而不是使用空字符串后跟新行?,因为它看起来不太明显。

1 个答案:

答案 0 :(得分:2)

您可能会在执行join之前尝试准备数组。请考虑以下代码:

[resource_name, 
 duration, 
 project_name, 
 total_hours, 
 details, 
 booker, 
 user_details].compact
  .reject { |s| s.empty? }
  .join("\n") 

我使用compact方法从数组中删除所有nil元素(如果您100%确定没有nil,则可以省略该元素)。下一步是删除或reject所有empty?字符串(请注意,empty?string上的方法。

祝你好运!