Я не знаком с Groovy, но я собираюсь выйти здесь на конечность и предположить, что String.split()
работает так же, как и в Java. Это означает, что аргумент, который вы передаете split()
, является строкой, представляющей регулярное выражение - в данном случае, пустой строкой. Согласно документам Java :
Этот метод работает как если бы вызывал метод с двумя аргументами split с данным выражением и предельным аргументом, равным нулю. Поэтому завершающие пустые строки не включаются в результирующий массив.
Это означает, что ваш вызов split("")
(например, "разбить на пустую строку") эквивалентен split("", 0)
. Каждая (непустая) строка начинается с , а заканчивается пустой строкой. Таким образом, ваш split("")
вызов фактически дает вам [, 1, 2, 3, 4, 5, 6, ]
, минус завершающие пустые строки , следовательно, [, 1, 2, 3, 4, 5, 6]
.