Ola amigos estou fazendo um trabalho academico e estou com o seguinte problema criei um textField para receber um vetor exp: “4,5,3,6,” e posteriomente encontra-se o seguinte metodo
1-criei um vetor vazio que sera passado ao metodo
2-converti o texto do textfield para para da o tamanho ao vetor
agora preciso pegar os dados da outra textField e repassar ao vetor
mauricioadl
seuTextField.getText().split("\,")
isso vai fazer vc ter um monte de strings separadas, basta vc ir convertendo e armazenando em uma array de inteiros.
F
felipenv
int vetor[];
int tam;
int numeros;
tam = Integer.parseInt(tf_tamanho.getText());
vetor = new int[tam];
numeros = Integer.parseInt(tf_vetor.getText());
vetor = new int[]{numeros};
MetodosDeOrdenacao m = new MetodosDeOrdenacao();
m.SelectionSort(vetor);
F
felipenv
Nao pode ser uma Arrey de inteiros pq o metodo aceita somente o vetor
abraxx e Obrigado
publicclassVetorSemGrafico{publicstaticvoidmain(Stringargs[]){Scannerinput=newScanner(System.in);MetodosDeOrdenacaom=newMetodosDeOrdenacao();inttam;intnum;System.out.println("digite o tamanho do vetor a ser criado");tam=input.nextInt();int[]vetor=newint[tam];for(intcounter=0;counter<vetor.length;counter++){System.out.println("Digite um numero");num=input.nextInt();vetor[counter]=num;for(intvalue:vetor){System.out.printf(" %d",value);}}System.out.println("");System.out.println("Vetor Ordenado");m.insertionSort(vetor);}}
Sem o Swing estou pesquisando o split estou quase la ja posto o resultado
Para quem quer ficar por dentro os metodos de ordenação usados na segunda classe
WellingtonRamos
Antes de mais nada,
Convenção de código Java: métodos iniciam-se com letras minúsculas (bem como variáveis). Apenas classes iniciam-se com letras maiúsculas (“Constantes” tem todas maiúsculas).
Quanto a String, você quer que “1,2,3,4” se transforme em new int[]{1,2,3,4}, isso?
Primeiramente, pode-se utilizar o split que quebra a String em um vetor de Strings. Depois, use um laço que lê cada item do vetor de Strings, fazendo o parse para int e adicionando no teu vetor de inteiros.
WellingtonRamos
felipenv:
Nao pode ser uma Arrey de inteiros pq o metodo aceita somente o vetor
abraxx e Obrigado
No caso, Array = vetor.
Só por curiosidade, você chegou a testar o código que você escreveu?
//criou as variáveis. Até aqui beleza.intvetor[];inttam;intnumeros;//Ok. Obteve o tamanho (mas pra que?)tam=Integer.parseInt(tf_tamanho.getText());//Criou um vetor com o tamanho informado. É isso mesmo? Veja mais abaixo porque do questionamento.vetor=newint[tam];//Se tiver apenas um número. Deve funcionar, caso contrário, é erro com certeza.numeros=Integer.parseInt(tf_vetor.getText());//Você TROCOU o vetor por outro. Logo, porque a inicialização anterior? A sim, passar numeros como variável, aqui, não funciona como você gostaria.vetor=newint[]{numeros};MetodosDeOrdenacaom=newMetodosDeOrdenacao();m.SelectionSort(vetor);
Tente implementar:
guarde a String obtida do campo;
chame o método split (veja no javadoc o que deve passar para ela) e guarde o vetor de strings retornado.
crie um vetor de inteiros com o tamanho do vetor de strings.
para cada item do vetor de strings, (loop/laço)
faça um parse para inteiro e guarde num item equivalente do vetor de inteiros.
Ao final, terá teu vetor de inteiros populado. Forneça o mesmo a teu MetodoDeOrdenacao.
WellingtonRamos
Não sei se você percebeu, mas estou te forçando a pesquisar como usar o split. Fica relativamente fácil eu colocar o código aqui e você simplesmente copiar. Acabará por ficar dependente
Você removeu algumas coisas do teu código, mas na verdade, o código que você removeu era o que deveria ter ficado
vetor = new int[]{numeros}; não vai funcionar como você deseja. Tenha certeza disso.
Coloque o portugol no teu código (como comentário), codifique cada linha (tente), pesquise um pouco.