Хороших ответов уже много, я просто хотел дать свои два цента.
Я знаю, что запуск parseInt () в цикле не эффективный способ, но ради простота .
public static int getIntFromEnd (String string) {
for (int a = string.length()-1; a >=0; a--)
try {
int result = Integer.parseInt(string.substring(a,string.length()));
// the whole string is integer
if(a == 0) return result;
} catch (Exception e) {
// there is no numbers at the end
if(a == string.length()-1) break;
return Integer.parseInt(string.substring(a+1,string.length()));
}
// there is no numbers
return -1;
}
ИСПЫТАНО ПРОТИВ ДРУГИХ ОТВЕТОВ:
Я провел несколько тестов против принятого ответа , и этот код работает от 7 до 10 раз быстрее .
Затем я попробовал его против второго ответа с наибольшим количеством голосов , и этот код выполняется в 3–4 раза быстрее .