Разница между splitByWholeSeparatorPreserveAllTokens и split - PullRequest
3 голосов
/ 28 декабря 2011

В чем разница между StringUtils.splitByWholeSeparatorPreserveAllTokens() и String.split()?

С помощью splitByWholeSeparatorPreserveAllTokens мы можем ограничить количество параметров, возвращаемых в массиве.Это единственная разница?

Ответы [ 2 ]

4 голосов
/ 28 декабря 2011

java.lang.String.split (); Использование: Массив, возвращаемый этим методом, содержит каждую подстроку этой строки, которая заканчивается другой подстрокой, соответствующей данному выражению, или завершается концом строки.Подстроки в массиве расположены в том порядке, в котором они встречаются в этой строке.Если выражение не совпадает ни с одной частью ввода, то результирующий массив имеет только один элемент, а именно эту строку.

org.apache.commons.lang.StringUtils.splitPreserveAllTokens (); Использование: Разбивает предоставленный текст на массив с указанным разделителем, сохраняя все токены, , включая пустые токены , созданные соседними разделителями.Это альтернатива использованию StringTokenizer.

Подробнее: kickjava_src_apache_StringUtils

и String.split() использует для разделения последний класс Pattern.

Pattern.compile(regex).split(this , limit);

в StringUtils использует splitWorker(String str, char separatorChar, boolean preserveAllTokens), свой собственный метод, представляющий собой мелодию Performance для 2.0 (JDK1.4).

2 голосов
/ 28 декабря 2011
I found folowing difference between String.split and splitByWholeSeparatorPreserveAllTokens 
  • splitByWholeSeparatorPreserveAllTokens обрабатывает нулевые значения, где String.split () не
  • В splitByWholeSeparatorPreserveAllTokensСмежные разделители обрабатываются как разделители для пустых токенов.
...