About Replace

4 respostas
Algebra

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?

4 Respostas

T

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.

Algebra

legal thingol não conhecia este Método

Marky.Vasconcelos

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");
Algebra

Legal Mark, facilitou msm

Abraços

Criado 27 de janeiro de 2010
Ultima resposta 28 de jan. de 2010
Respostas 4
Participantes 3