split(regex)
возвращает результат split(regex,0)
, где 0
является limit
. В настоящее время в соответствии с documentation (ограничение представлено n
)
Если n
равен нулю, то шаблон будет применен столько раз, сколько это возможно, массив может иметь любую длину, и замыкающие пустые строки будут отброшены.
(курсив мой)
Это означает, что в случае кода, как
"ababaa".split("a")
сначала вы получите массив ["", "b","b","",""]
но отставая пустая строка жижа будет удалена, так что вы будете в конечном итоге с массивом ["","b","b"]
НО, если ваша строка содержит только элементы, которые split
может совпадать с ее рисунком, например
"ababab".split("ab")
на первый массиве будет содержать ["","","",""]
(три шпагата), но тогда пустые элементы хвостовых будут удалены, что означает, что все элементы будут удалены, который будет оставить вас с []
(массивом с размером 0).
Чтобы получить пустой массив, вам нужно разделить на строку, содержащую только подстроки, которые могут быть сопоставлены параметром split
, поэтому в случае split(" ")
исходная строка должна быть построена только из пробелов, а ее длина должна быть не менее 1.
BTW, если исходная строка будет пустой, как «" split(" ")
, не произойдет, так что массив с исходной строкой будет возвращен, что означает, что вы все равно получите массив [""]
с одним элементом, а не с пустым массивом.
Вы можете сказать «», но вы сказали, что удаляемая пустая строка удаляется, поэтому почему это «» не удаляется (оно заканчивается, и оно пустое)? ». Ну да, но удаление конечных пустых строк имеет смысл только в том случае, если эти строки были созданы в результате разбиения, поэтому, если разделение не произошло, «очистка» не требуется, поэтому массив результатов будет содержать исходную строку, как описано в моем earlier answer этот предмет.
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String), и похоже, что вы нашли свой ответ :) он ничего не возвращает если совпадение не найдено – thermite
http://ideone.com/jEiMFw <, если fullName является разделителем '' '' (или разделителем * N '" ..несколько пространств ") – Selvin
@thermite Я видел эту документацию, но не вижу, где она упоминает особые случаи. Кроме того, используя классный веб-сайт Selvin, мы видим, что это неверно: http://ideone.com/8mRkd4. – siger