6

Как удалить последний символ из строки?

11

Я хочу удалить последний символ из строки. Я попробовал сделать это следующим образом:

public String method(String str) {
    if (str.charAt(str.length()-1)=='x'){
        str = str.replace(str.substring(str.length()-1), "");
        return str;
    } else {
        return str;
    }
}

Я получаю длину строки - 1 и заменяю последний символ на пустую строку (удаляю его), но каждый раз, когда я запускаю программу, она удаляет и средние символы, которые совпадают с последним символом.

Например, слово "admirer" после запуска метода возвращает "admie". Я хотел бы, чтобы оно вернуло слово "admire".

Как мне исправить этот код, чтобы он удалял только последний символ и не затрагивал остальные, если они одинаковые?

5 ответ(ов)

1

Да, действительно, можно использовать регулярные выражения для решения этой задачи. В приведенном вами примере код:

"aaabcd".replaceFirst(".$", ""); //=> aaabc  

использует метод replaceFirst, который заменяет первое вхождение заданного шаблона на указанную строку. Здесь шаблон ".$" означает "любой символ в конце строки". Таким образом, этот код удаляет последний символ строки "aaabcd", в результате чего мы получаем "aaabc".

Если у вас возникнут дополнительные вопросы по использованию регулярных выражений, не стесняйтесь задавать!

0

Ваш код для удаления последнего символа из строки выглядит хорошо, но стоит добавить небольшие уточнения в комментариях и обработке случаев, если строка пуста или равна null. Вот перевод и возможный улучшенный вариант вашего метода на русском языке:

public String removeLastChar(String s) {
    // Проверяем, равна ли строка null или имеет нулевую длину
    if (s == null || s.length() == 0) {
        return s; // В этом случае возвращаем строку без изменений
    }
    // Возвращаем подстроку, исключая последний символ
    return s.substring(0, s.length() - 1);
}

Если вам нужно что-то ещё, пожалуйста, уточните!

0

В Kotlin вы можете использовать метод dropLast() класса String. Этот метод удаляет указанное количество символов с конца строки и возвращает новую строку.

Вот пример использования:

var string1 = "Some Text"
string1 = string1.dropLast(1) // в результате string1 будет равно "Some Tex"

Таким образом, если вы хотите удалить, например, один символ из конца строки, просто передайте число 1 в метод dropLast().

0

Если вы хотите удалить последний символ строки, если он равен 'x', то вы можете использовать следующий код:

if (string.endsWith("x")) {
    string = string.substring(0, string.length() - 1);
}

Этот код проверяет, заканчивается ли строка на 'x'. Если это так, то он создает новую строку, исключая последний символ, и присваивает её переменной string. Обратите внимание, что в Java строки неизменяемы, поэтому необходимо присваивать результат в новую переменную или в ту же переменную, как в данном примере.

0

Что касается читаемости, я считаю, что это наиболее лаконичный вариант:

StringUtils.substring("строка", 0, -1);

Отрицательные индексы могут использоваться в утилите StringUtils от Apache. Все отрицательные числа рассматриваются как смещение от конца строки.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь