вы можете использовать регулярное выражение \\w+>$
\\w+
значит матч [a-zA-Z0-9_]
>$
матч >
характер, где $
означает, в конце
Regex Demo Link
String s = "String1>String2>String3>String4>String5>";
String s2 = s.replaceAll("\\w+>$","");
System.out.println(s2);
Выход:
String1>String2>String3>String4>
Примечание: Для того, чтобы избежать _
использования
String s2 = s.replaceAll("[a-zA-Z\\d]+>$","");
Только в том случае, если у вас есть данные с некоторыми специальными символами, как
String s = "String1>Stri$#$ng2>String3>Stri#$$#ng4>St$#:/|ring5>";
то выше решение не будет работать так, вы можете использовать
String s2 = s.replaceAll("[^>]+>$","");
// s2 will be = String1>Stri$#$ng2>String3>Stri#$$#ng4>
Regex Demo Link
[^>]+
: ^
внутри []
работает как отрицание означает, совпадает все, кроме >
характера
возможно дубликат http://stackoverflow.com/questions/10828313/remove-string-after-last-occurrence-of-character-android-java – mandar
мой вопрос отличается. пожалуйста, внимательно прочитайте .. @mandar – Android
'public StringBuilder delete (int start, int end)' Удаляет символы в подстроке этой последовательности. Подстрока начинается с указанного начала и продолжается до символа в конце индекса - 1 или до конца последовательности, если такой символ не существует. Если начало равно концу, никаких изменений не производится. Параметры: 'start - Начальный индекс, включительно. конец - The конечный индекс, эксклюзивный.' –