代码之家  ›  专栏  ›  技术社区  ›  sanpaco

如何用Ruby将对象中包含的字符串打印为文本?

  •  0
  • sanpaco  · 技术社区  · 6 年前

    我正在尝试编写一个程序来检测文件是否 \n \r\n

    下面是我检查行尾类型的方法:

    def determine_line_ending(filename)
      File.open(filename, 'r') do |file|
        return file.readline[/\r?\n$/]
      end
    end
    ending = determine_line_ending(ARGV.first)
    

    假设此方法将返回 如果它与文件第一行的其中一个模式匹配。

    puts ending puts '\r\n' 然后它将直接打印它们,或者如果我使用双引号,我只需要摆脱反斜杠。但我对Ruby还不太熟悉,我很难找到一种方法来将变量打印为文本而不是字符串。

    2 回复  |  直到 6 年前
        1
  •  2
  •   David Szell    6 年前

    如果我很理解您,如果行尾是“\r”字符串,则需要打印该字符串;如果行尾是“\r\n”,则需要打印该字符串。

    在这种情况下,您可以使用 倾倒

    puts ending.dump // => "\r" or "\r\n"
    
        2
  •  0
  •   Nondv    6 年前

    我会用方法 String#inspect :

    s = "abc\n\rdef"
    puts s
    puts s.inspect