Обратите внимание, что для регулярных выражений, места между символами также рассчитывать. Таким образом, механизм регулярных выражений видит boo:and:foo
строку как
<EMPTY>b<EMPTY>o<EMPTY>o<EMPTY>:<EMPTY>a<EMPTY>n<EMPTY>d<EMPTY>:<EMPTY>f<EMPTY>o<EMPTY>o<EMPTY>
^between^ ^between^
В качестве первого ^between^
не в конце строки, split
сохраняет пустое место (строка) в результатах. Заканчивающиеся пустые элементы удаляются как конец, так как аргумент int limit
по умолчанию равен 0
. Если вы пройдете -1
(неположительное значение), все конечные пустые элементы будут присутствовать в результирующем массиве. См. String#split ссылка.
это возвращает две строки, 'b', ': и: f', но почему источник '' не найден? Я знаю, что «+» означает, что «o» должен произойти по крайней мере один раз – user1169587
@ DavidPérezCabrera, если используется split («o +», -1), затем три строки return, «b», «: and: f» и «», не знаю, что произойдет ... почему последний «подсчитан, но« между »и« о »не учитывается? – user1169587