Poder ser simples, mas estou com dificuldade em converter um vetor para um String, sendo que ela não contenha o ultimo tab \t..
/** * Método converteVetorString: Este método converte um vet[] de inteiros, * para uma String separa por tab \t. * * @param vet[] * int * @return String */publicstaticStringconverteVetorString(int[]vet){Stringretorno="";for(inti=0;i<vet.length;i++){retorno+=vet[i]+"\t";}returnretorno;}
Corrigi seu javadoc (para usar o estilo recomendado pela Sun) e sua rotina.
Veja que o javadoc não é feito para ser lido diretamente pelo programador; é feito para ser lido pelo programa
javadoc do JDK, para produzir uma saída parecida com o Javadoc da API do Java.
Portanto você NÃO inclui:
O nome da rotina (já está na própria definição do método);
O tipo dos parâmetros (já está na própria definição do método);
O tipo de retorno (já está na própria definição do método);
Você deve incluir:
Para que serve a rotina, ou no mínimo o que ela faz (“como ela faz” normalmente pode ser inferido do código, a menos que você use algum algoritmo específico e complexo).
O que é muito legal você incluir, embora não seja obrigatório:
Um exemplo de uso.
/** * Converte um vetor de inteiros para uma string com os números * separados por tabs. * <p> Exemplo: {13,45,98} -> "13\t45\t98" * @param vet um vetor de inteiros. * @return Uma string com os inteiros, separados por tabs. */publicstaticStringconverteVetorString(int[]vet){StringBufferretorno=newStringBuffer();// prefira usar StringBuffer ou StringBuilder// Pensando "ao contrário..."if(vet.length>=1){retorno.append(vet[0]);}for(inti=1;i<vet.length;i++){retorno.append("\t").append(vet[i]);}returnretorno.toString();}
wamarra
Olá conectionsp
Tente o seguinte:
retorno+=(String)vet[i]+"\t";
Abraços
T
thingol
Uma vez eu fui tentar criar uma string usando “+=”.
Detalhe: era um programa muito parecido com o seu, só que o array tinha 1 milhão de inteiros - não é nada absurdo em Java.
Eu comecei usando o jeitinho que você fez, só que a máquina simplesmente pediu água.
Quando eu usei o StringBuffer (modernamente você usaria StringBuilder), a criação da string foi virtualmente instantânea.
C
conectionsp
Agradeço a todos pela colaboração …
T
thingol
Dando um exemplo extremo da diferença do uso de StringBuffer (ou StringBuilder) e o "+=".
Veja que com StringBuffer conseguimos concatenar o milhão de números em cerca de 0,5 segundo.
Na minha máquina não tive paciência de ver se usando só String funcionava mesmo.
importjava.util.*;classTesteStringBuilder{int[]valores=newint[1000000];publicvoidsetup(){Randomr=newRandom();r.setSeed(1);// isto faz com que gere sempre a mesma seqüênciafor(inti=0;i<valores.length;++i){valores[i]=r.nextInt();}}publicvoidteste1(){Timertm=newTimer();finallongt=System.currentTimeMillis();tm.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){System.out.printf("%7d ms - %10d\r",System.currentTimeMillis()-t,cnt);}},0,100);Stringret="";for(inti=0;i<valores.length;++i){ret+=valores[i]+"\t";cnt=i;}System.out.println();System.out.println("O teste 1 levou "+(System.currentTimeMillis()-t)+"ms");tm.cancel();}privatevolatileintcnt;publicvoidteste2(){Timertm=newTimer();finallongt=System.currentTimeMillis();tm.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){System.out.printf("%7d ms - %10d\r",System.currentTimeMillis()-t,cnt);}},0,100);StringBuffersb=newStringBuffer();for(inti=0;i<valores.length;++i){sb.append(valores[i]).append("\t");cnt=i;}Stringret=sb.toString();System.out.println();System.out.println("O teste 2 levou "+(System.currentTimeMillis()-t)+"ms");tm.cancel();}publicstaticvoidmain(String[]args){TesteStringBuildertsb=newTesteStringBuilder();tsb.setup();tsb.teste2();tsb.teste1();}}