当前位置:  开发笔记 > 后端 > 正文

在Ruby语言中,如何获取字符串中的行数?

如何解决《在Ruby语言中,如何获取字符串中的行数?》经验,为你挑选了3个好方法。

在Ruby语言中,如何获取字符串中的行数?



1> Anurag..:

有一个lines返回一个字符串的方法Enumerator.呼吁count调查员.

str = "Hello\nWorld"
str.lines.count # 2

str = "Hello\nWorld\n" # trailing newline is ignored
str.lines.count # 2

lines方法在Ruby 1.8.7中引入.如果您使用的是旧版本,请查看@mipadi和@Greg的答案.



2> mipadi..:

一种方法是计数行尾的号码(\n或者\r\n,取决于字符串),需要提醒的是,如果字符串并没有在一个新行结束,你必须确保添加一个到您的计数.您可以使用以下内容执行此操作:

c = my_string.count("\n")
c += 1 unless c[-1,1] == "\n"

您也可以循环遍历字符串并计算行数:

c = 0
my_string.each { |line| c += 1 }

继续使用该解决方案,您可以非常喜欢和使用inject:

c = my_string.each.inject(0) { |count, line| count += 1 }



3> the Tin Man..:

string".split("\n").size效果很好。我喜欢它忽略尾随换行符(如果它们不包含内容)。

"Hello\nWorld\n".split("\n") # => ["Hello", "World"]
"hello\nworld\nfoo bar\n\n".split("\n").size # => 3

那可能不是您想要的,因此lines(),如果需要使用所有换行符,请使用@Anurag的建议。

"hello\nworld\nfoo bar\n\n".lines.count # => 4

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有