Как я могу обрезать ведущие или завершающие символы из строки в java?
Например, символ косой черты "/" - меня не интересуют пробелы, и я хочу обрезать либо ведущие, либо завершающие символы в разное время.
Как я могу обрезать ведущие или завершающие символы из строки в java?
Например, символ косой черты "/" - меня не интересуют пробелы, и я хочу обрезать либо ведущие, либо завершающие символы в разное время.
Вы можете использовать
Leading:
System.out.println("//test/me".replaceAll("^/+", ""));
Продольный:
System.out.println("//test/me//".replaceAll("/+$", ""));
Вы можете использовать Apache StringUtils.stripStart, чтобы обрезать ведущие символы, или StringUtils.stripEnd, чтобы обрезать конечные символы.
Например:
System.out.println(StringUtils.stripStart("//test/me", "/"));
выведет:
Тест/я
Обратите внимание, что если по какой-либо причине вы не можете использовать всю библиотеку StringUtils, вы можете просто вырвать соответствующие части как описано здесь:
Моя версия обрезания ведущей и/или конечной строки String str. Оба аргумента могут быть нулевыми. Когда str не имеет ведущих и/или конечных s, он не изменяется.
String trim(String str, String s) {
String res = s == null ? str : str == null ? null : s.length() >= str.length() ? str : str.replaceFirst(s, "");
if ((res != null) && (s != null) && (res.length() >= s.length())) {
return res.substring(res.length() - s.length(), res.length()).equals(s) ? res.substring(0, res.length() - s.length()) : res;
}
return res;
}
Вы можете использовать простую итерацию, если хотите удалить ведущие символы из строки:
String removeLeadingChar(String s, char c) {
int i;
for(i = 0; i < s.length() && s.charAt(i) == c; ++i);
return s.substring(i);
}
та же логика применяется, если вы хотите удалить любые завершающие char
.