Подтвердить что ты не робот

Java - Обрезать ведущие или завершающие символы из строки?

Как я могу обрезать ведущие или завершающие символы из строки в java?

Например, символ косой черты "/" - меня не интересуют пробелы, и я хочу обрезать либо ведущие, либо завершающие символы в разное время.

4b9b3361

Ответ 1

Вы можете использовать

Leading:

System.out.println("//test/me".replaceAll("^/+", ""));

Продольный:

System.out.println("//test/me//".replaceAll("/+$", ""));

Ответ 2

Вы можете использовать Apache StringUtils.stripStart, чтобы обрезать ведущие символы, или StringUtils.stripEnd, чтобы обрезать конечные символы.

Например:

System.out.println(StringUtils.stripStart("//test/me", "/"));

выведет:

Тест/я

Обратите внимание, что если по какой-либо причине вы не можете использовать всю библиотеку StringUtils, вы можете просто вырвать соответствующие части как описано здесь:

Ответ 3

Моя версия обрезания ведущей и/или конечной строки 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;
}

Ответ 4

Вы можете использовать простую итерацию, если хотите удалить ведущие символы из строки:

String removeLeadingChar(String s, char c) {
    int i;
    for(i = 0; i < s.length() && s.charAt(i) == c; ++i);
    return s.substring(i);
}

та же логика применяется, если вы хотите удалить любые завершающие char.