как преобразовать массив в строку после функции split - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь преобразовать возвращаемое значение функции .split() в строку.

Есть строка символов, которая анализируется из текстового файла, и мне нужно изменить ее смассив в строку.

После вызова функции разбиения результатом является массив, однако мне нужно, чтобы он был строкой для выполнения символьных операций и функций.

example = "--NAME: John Doe"
print example
value = example.split("--NAME: ")
print value.class
value.to_s.strip
print value
print value.class

Ответы [ 6 ]

0 голосов
/ 02 января 2019
> value = example.split("--NAME: ")
#=> ["", "John Doe"]
> value.join.strip
#=> "John Doe" 
0 голосов
/ 02 января 2019

Если вы получаете example строку в тех же форматах каждый раз,

example.split(' ', 2).last
0 голосов
/ 02 января 2019

(?<=--NAME:) Позитивное утверждение за заявлением: гарантирует, что предыдущие символы совпадают --NAME:, но не включает эти символы в сопоставляемый текст

Strip! для удаления начальных или конечных пробелов на месте.

irb(main):018:0>"--NAME: John Doe"[/(?<=--NAME:).*$/].strip!

Шаг за шагом:

irb(main):026:0> exampel = "--NAME: John Doe"
=> "--NAME: John Doe"
irb(main):027:0> example = exampel[/(?<=--NAME:).*$/].strip!
=> "John Doe"
irb(main):028:0> example
=> "John Doe"
irb(main):029:0> 
0 голосов
/ 02 января 2019

Просто подстроку вашей строки:

example = "--NAME: John Doe"

example[8..-1]

#=> "John Doe"

Хотя 8 указывает начальную позицию, а -1 указывает, что подстрока должна заканчиваться последним символом строки example, поскольку длина NAME является переменной.

0 голосов
/ 02 января 2019

Может быть, split() не подходит для ваших нужд?

Если вы хотите удалить приглашение, попробуйте gsub() (https://ruby -doc.org / core-2.4.1 / String.html # method-i-gsub ). gsub() означает «глобальное замещение», а в других языках его часто называют replace().

example.gsub("--NAME: ", "")

Заменит подсказку пустой строкой и выдаст:

"Джон Доу"

(Строка)

0 голосов
/ 02 января 2019

вы можете использовать ' join ' для преобразования массива в строку.

В вашем примере я использовал "join", чтобы получить строку, разделенную запятой, и "reject", чтобы удалить пустые строки, если таковые имеются.

example = "--NAME: John Doe"
value = example.split("--NAME: ")
puts value

["", "John Doe"]

puts value.reject(&:blank?).join(",")

"Джон Доу"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...