Разбиение на пустые подстроки - PullRequest
0 голосов
/ 25 января 2019

Я получаю этот результат (обратите внимание, что первое "" относится к предыдущему пустому совпадению):

"babab".split("b")
# => ["", "a", "a"]

Заменив "a" пустой строкой в ​​приведенном выше вводе, как показано ниже,

"bbb".split("b")

Я ожидал получить следующий результат:

["", "", ""]

Но на самом деле я получаю:

[]

Какая логика стоит за этим?

1 Ответ

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

Логика описана в документации :

Если параметр limit опущен, завершающие нулевые поля подавляются.

Удаленные пустые поля удаляются, но не ведущие.


Если, случайно, то, что вы спрашивали, было «да, но где логика в , что ?», То представьте, что мы анализируем некоторую CSV.

fname,sname,id,email,status
,,1,sergio@example.com,

Мы хотим, чтобы первые две позиции оставались пустыми (вместо того, чтобы быть удаленными и иметь имя fname, равное 1, и sname - sergio@example.com).

Мы меньше заботимся о следе за пустыми полями Удаленные или сохраненные, они не перемещают данные.

...