#java #string #hibernate #spring #apache-commons
#java #строка #переход в спящий режим #spring #apache-commons
Вопрос:
Я хотел бы преобразовать имена файлов, содержащие пробелы и символы, так, чтобы они содержали только символы A-Z, a-z, точку, дефис и подчеркивание. Что-то вроде этого регулярного выражения: ([a-z][A-Z]-_.)
Конечно, я мог бы просто сделать это с помощью регулярного выражения. Но поскольку я уже включил в свой проект множество библиотек (Spring, Hibernate, Apache Commons и многое другое), мне было интересно, доступно ли что-то подобное уже.
Итак, строка, подобная этой:
This>is some(string,with $invalid*-chars).jpg
Была бы преобразована в это:
This_is_some_string_with__invalid_-chars_.jpg
Ответ №1:
Ни одна библиотека не сможет предложить вам что-то более простое, чем String.replaceAll("[^a-zA-Z0-9-_\.]", "_")
Комментарии:
1. Верно. Я просто подумал, что это было бы достаточно распространенным требованием, чтобы у какой-нибудь стандартной вспомогательной библиотеки был
StringUtil.cleanFilename(name)
тип метода. Ничего особенного. Кстати, правильное регулярное выражение для использования:"somestring".replaceAll("[^a-zA-Z0-9-_\.]", "_")
.2. Было бы хорошо, если бы ответ можно было обновить регулярным выражением в комментарии, так как это лучше.
3. Стоит отметить, что это не будет работать с любой системой, где у пользователей могут быть файлы с не буквенно-цифровыми символами (китайский, любой язык с акцентами и т.д.)