Подтвердить что ты не робот

Как получить первую строку из строки в Ruby?

У меня есть строковая переменная в Ruby следующим образом:

puts $varString.class
puts "##########"
puts $varString

вывод кода выше:

String 
##########
my::FIrst::Line
 this id second line 
 sjdf kjsdfh jsdf 
 djsf sdk fxdj

Мне нужно получить только первую строку из строковой переменной (например, my::FIrst::Line). Как я могу получить его?

4b9b3361

Ответ 1

# Ruby >= 1.8.7
$varString.lines.first
# => "my::FIrst::Line"

# Ruby < 1.8.7
$varString.split("\n").first
# => "my::FIrst::Line"

В качестве побочного примечания избегайте использования глобальных переменных (знака $).

Ответ 2

$varString.lines.first

Или, если вы хотите избавиться от последней строки новой строки в результирующей строке:

$varString.lines.first.chomp

Ответ 3

str = <<DOC1
asrg
aeg
aegfr
DOC1

puts str[0..(str.index("\n")|| -1)]

Предотвращает чтение всей строки в массиве. (Параметр || -1 исключает ошибку, если строка не заканчивается в строке). EDIT str.lines не создает массив.

Ответ 4

puts $varString.split('\n')[0]

Разделяет строку на токенах '\n' и получает первый

Ответ 5

Альтернативным ответом @steenslag будет использование StringIO для получения только первой строки.

str = <<DOC1
asrg
aeg
aegfr
DOC1

puts StringIO.open(str, &:readline)

Если String огромна, это позволяет избежать разделения строки на большой массив и считывает только первую строку. Обратите внимание, что это порождает EOFError, если строка пуста.