Sven van 't Veer wrote:
>
> String newString = "";
> StringTokenizer tok = new StringTokenizer("123 456 789");
> while(tok.hasMoreElements()){
> newString += tok.nextElement() + " ";
> }
>
Nesses casos, use um StringBuffer. Uma String eh imutavel, e a operacao
"+=" acima cria pelo menos 2 objetos (um StringBuffer e uma String) a
_cada_ passagem, e que depois esses precisam ser garbage-collected.
Lembre-se que criacao de objetos eh uma das operacoes mais caras em Java!
Ao inves disso, faca:
StringBuffer newString = new StringBuffer(10);
// ao pre-alocar o tamanho do StringBuffer, voce tbem economiza,
// nao precisando que o tamanho seja alterado com frequencia
while(tok.hasMoreElements()){
newString.append(tok.nextElement());
newString.append(" ");
}
String outraString = newString.toString();
Isso sera muito mais rapido, em especial em grandes loops.
Alem disso, voce pode utilizar os metodos: delete, deleteCharAt, insert e
replace do StringBuffer para resolver o problema inicial (trocar espacos
por " ")
[]s,
Bruno.
______________________________________________________________________
Bruno Peres Ferreira de Souza Brazil's JavaMan
http://www.javaman.com.br mailto:[EMAIL PROTECTED]
if I fail, if I succeed, at least I live as I believe
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------