Вопрос

Я размышлял об этой сумасшедшей штуке в StringUtils.split(string,separator);

Я хочу отделить строку с помощью разделителя @@--@@ и мой код выглядит примерно так.

String[] strings = StringUtils.split("kayf86@--@9@--@5r43987@!@!%%^&^$%@!@!%-@@*&%$*(&^$%@!@!%--@", "@--@");
for (String string : strings) {
    System.out.println(string);
}

Я нашел результат как таковой

kayf86
9
5r43987
!
!%%^&^$%
!
!%
*&%$*(&^$%
!
!%

Я использую commons-lang-2.6.jar Может ли кто-нибудь объяснить, как это произошло?

Это было полезно?

Решение

StringUtils использует любой из символов в separatorChars аргумент в качестве разделителя, не обязательно весь целиком.Тот Самый Javadoc также говорится

Разделитель не включен в возвращаемый массив строк. Смежные разделители обрабатываются как один разделитель.

Параметры

  • Разделители символы, используемые в качестве разделителей, null разбиваются на пробелы

В качестве альтернативы вы можете использовать StringUtils.splitByWholeSeparator(String, String) разделить на точные @--@ или что бы это ни было.

Другие советы

В этом сценарии требуется оба @, - в качестве разделителя так, вот почему этот вывод производится. Для точного вывода вы должны попробовать какой-то другой «сепаратор»

Для обозначения: http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/stringutils.html#split% 28java.lang.string,% 20java.lang.string% 29

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top