Разница между splitByWholeSeparator, splitPreserveAllTokens и splitByWholeSeparatorPreserveAllTokens - PullRequest
0 голосов
/ 17 апреля 2019

В классе org.apache.commons.lang3.StringUtils, в чем разница между splitByWholeSeparator(String, String), splitPreserveAllTokens(String, String) и splitByWholeSeparatorPreserveAllTokens(String, String)?Я проверил JavaDoc , и не совсем понятно, почему я использовал бы один метод поверх других.

1 Ответ

1 голос
/ 18 апреля 2019

После некоторого просмотра документации я вижу, в чем может быть проблема.

  1. split принимает строку-разделитель и обрабатывает каждый символ в ней как символ-разделитель. Соседние символы разделителя рассматриваются как один, без пустых элементов массива.
  2. splitPreserveAllTokens делает то же самое, но соседние символы разделителя приводят к пустым элементам массива.
  3. splitByWholeSeparator использует всю строку-разделитель для разделения строки. Смежные строки разделителя рассматриваются как единое целое, без пустых элементов массива.
  4. splitByWholeSeparatorPreserveAllTokens делает то же самое, но соседние строки-разделители приводят к пустым элементам массива.

Пример:

String: "a,b,;,;e,f,,g,h"
Separator: ",;"

split: ["a","b","e","f,"g",h"]
splitPreserveAllTokens: ["a","b","","","","e","f","","g","h"]
splitByWholeSeparator: ["a,b","e,f,,g,h"]
splitByWholeSeparatorPreserveAllTokens: ["a,b","","e,f,,g,h"]
...