Dúvida Substring e Replace [Resolvido]

Olá,
Há algum tempo já venho pesquisando, qual classe ou método eu posso utilizar para substituir uma String passando uma posição específica no Java.

Por ex: No PHP existe a função substr_replace($arquivo, “$oldChar”, “newChar”, 0, 5);

  • Onde é passado a (String, Caracter existente, Caracter a ser substituido, Posição Inicial, Posição Final), respectivamente.

Java:
Estou tentando utilizar .replace(), entretanto, o método .replace() altera tudo que estiver com 09 para YY. Mas a String possui 09 em vários pontos da String. Portanto, é necessário especificar a posição Inicial e Final para não alterar o resto da String.

[code]String st = “090009000090000000000000000”;
System.out.println(st.replace(“09”, “YY”));
//A saída é exibida desta maneira “YY00YY000YY0000000000000000”

//Gostaria que fosse exibida “090009000YY0000000000000000”, ou seja, substituir na string apenas a posição especificada.[/code]

Rafa, a classe correta pra fazer essa operação não é a String, mas sim a StringBuffer:
http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html

A aplicação não é ‘direta’, mas é o método replace dela que vai te guiar. Dá uma olhadinha :wink:

Abraço!

[quote=leoramos]Rafa, a classe correta pra fazer essa operação não é a String, mas sim a StringBuffer:
http://java.sun.com/javase/6/docs/api/java/lang/StringBuffer.html

A aplicação não é ‘direta’, mas é o método replace dela que vai te guiar. Dá uma olhadinha :wink:

Abraço![/quote]

O correto mesmo seria StringBuilder , por ser mais rápida e assíncrona =) , o bom de se utilizar StringBuffer eh nas versões antes do Java 5 eh o uso de Treads a partir desta versão !

Boa! Na verdade eu uso StringBuilder pros PreparedStatements, nunca precisei pra mais nada…
Achei a solução dele num fórum, tava goiabando total no assunto.

Vivendo e aprendendo ^.^

Valeu a dica, cara!