Исследовать:Почему разделение строк непоследовательно?
"test.one.two".split(".") # => ["test", "one", "two"]
Право, совершенным. Именно то, что мы хотим.
"test..two".split(".") # => ["test", "", "two"]
Я заменил one
с пустой строкой, так что имеет смысл
"test".split(".") # => ["test"]
Вот что я бы ожидать, никаких проблем здесь.
".test".split(".") # => ["", "test"]
Да, моя строка имеет один .
, так что я получил две секции в результате.
"test.".split(".") # => ["test"]
Что? В моей строке есть .
, она должна быть разделена на две части. Я не просил избавиться от пустых струн; это не избавиться от пустых строк обратно в тестах 2 или 4.
я ожидал бы ["test", ""]
"".split(".") # => []
ЧТО? Это должно работать почти точно как испытание 3, и возвращает [""]
. Но теперь я не могу выполнить какие-либо строковые методы на result[0]
Почему это противоречиво для разделов, которые встречаются на краях или для пустой строки?
Чтобы получить все части в 5, необходимо передать параметр 'split':' "test.". Split (".", -1) # ⇒ ["test", ""] '. Пустая строка всегда разделяется на пустой массив. – mudasobwa
@ mudasobwa Я знаю, мой вопрос * почему *. Пустой тест строки ведет себя непоследовательно с тестом 3. –
from docs _ Когда входная строка пуста, возвращается пустой массив, поскольку в строке считается, что поля не разделены. – tihom