Одним из способов может быть подсчет количества концов строк (\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 }