【问题标题】:Removing "\n" from a string depending on certain cases根据某些情况从字符串中删除“\n”
【发布时间】:2015-10-01 10:46:15
【问题描述】:

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

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

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

我如何删除整行,而不是在一个空字符串后跟一个换行符?,因为这看起来不美观。

【问题讨论】:

    标签: arrays ruby string newline


    【解决方案1】:

    您可以尝试在执行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 上的一个方法)。

    祝你好运!

    【讨论】:

    • 因为这是一个基本的红宝石问题,您可能只想注意.reject(&:empty?).reject{ |s| s.empty? } 的一般形式的糖
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2017-06-16
    相关资源
    最近更新 更多