para substituir a primeira string encontrada usa-se mystring.replacefirst( “old”,“new” ), to procurando uma função que substitua a ultima sequencia de caracteres ou ultimo caracter tipo um raplacelast, alguem conhece algo parecido?
Se você não precisa de uma expressão regular (não se esqueça que “replaceAll” e “replaceFirst” são lentas porque usam expressões regulares) então pode usar o método estúpido de inverter as strings. Por exemplo, você gostaria de substituir o último “abra” por “fecha”:
String s = "abracadabra";
s = (new StringBuilder (((new StringBuilder (s)).reverse()).toString().replaceFirst("arba", "ehcef"))).reverse()).toString();
É claro que isso é meio difícil de manter. Eu preferiria criar um método que usasse String.lastIndexOf, que é mais rápido e menos esquisito.
legal thingol não conhecia este Método
Para facilitar podia criar um método.
public String replaceLast(String ori, String replaceText,String replaceFor){
StrinbBuilder builder = new StringBuilder(ori);
String result = builder.reverse().toString().replaceFirst(new StringBuilder(replaceText).reverse().toString(), new StringBuilder(replaceFor).reverse().toString());
return new StringBuilder(result).reverse().toString();
}
Cabrero… o.0
Mas voce usa tipo
String s = "abracadabra";
s = replaceLast(s, "abra","fecha");
Legal Mark, facilitou msm
Abraços