Olá amigos, alguem poderia me ajudar na criação de um array onde uma pessoa consiga inserir nome e telefone?
Exemplo: Criar dois arrays com 10 posiçoes para cada e a inserção de nome e telefone ser feita como se fosse por um “usuário”.
Eu sei que tem um comando que se não me engano é Scanner sc = new Scanner (System.in);
Mas não sei como fazer isso juntamente com o Array.
Crie uma classe usuário com nome e telefone como atributos, depois crie um array de usuário. Use o scanner para ler duas strings do teclado, atribua essas strings em nome e telefone, e crie um usuário com esses dois atributos, passando as strings como parâmetro. Finalmente inclua o objeto usuário recem-criado no array.
Jarf
Não entendi muito bem, mas vou tentar da meu jeito aqui ;/
De qualquer forma, obrigado pela ajuda.
Jarf
Se alguem puder me ajudar de uma outra forma eu agradeço.
Rodou direitinho o Exemplo Bruno. Mto obrigado, ajudou bastante :wink:
Só to tentando fazer agora tratando uma exceção e com while, ai fiz da seguinte forma:
Cara, tenho certeza que esta dando uma excecao do tipo “unreachable”. Veja a correcao:
if(nome.equalsIgnoreCase("Fim")); //aqui tem um ponto e virgula e deve ser retiradobreak;
deve ser assim:
if(nome.equalsIgnoreCase("Fim"))break;
ate
B
Bruno_Laturner
Jarf:
Rodou direitinho o Exemplo Bruno. Mto obrigado, ajudou bastante
Só to tentando fazer agora tratando uma exceção e com while, ai fiz da seguinte forma:
Só um aviso, não trate exceções dessa forma, você pode muito bem evitá-la mudando a condição de parada do while.
Jarf
Vlw pela ajuda de vcs amigos
Mas pq ele não esta tratando a Exceção? Ele fica registrando nome o Tempo todo e qndo digito Fim da o seguinte erro:
Nome: fim
Nomes digitados
[Lexercicio.Usuario;@186d4c1
Nomes digitados
[Lexercicio.Usuario;@186d4c1
Nomes digitados
[Lexercicio.Usuario;@186d4c1
O que eu fiz de errado?
Alguem pode me ajudar?
Obrigado!!
Vini_Fernandes
Cara, seu codigo deve funcionar dessa maneira:
importjava.util.*;publicclassUsuario{privateStringnome;privateStringtelefone;publicUsuario(Stringnome,Stringtelefone){this.nome=nome;this.telefone=telefone;}@OverridepublicStringtoString(){returnnome+" : "+telefone;}publicstaticvoidmain(String[]args){try{Scannerin=newScanner(System.in);//Usuario[] usuarios = new Usuario[3]; List<Usuario>usuarios=newArrayList<Usuario>();System.out.println("Caso queira sair digite FIM ou qualquer tecla para INICIAR: ");while(!in.next().equalsIgnoreCase("Fim")){System.out.print("Nome: ");Stringnome=in.next();System.out.print("Telefone: ");Stringtelefone=in.next();usuarios.add(newUsuario(nome,telefone));System.out.println("Caso queira sair digite FIM: ");}for(Usuariousuario:usuarios){System.out.println("Nomes digitados \n"+usuario);}}catch(Exceptione){e.printStackTrace();}}}
Sei que utilizei alguns recursos que voce nao conhece, mas vamos la: trabalhamos com implementacaoes da interface List sempre quando queremos uma lista de obejetos que pode crescer indefinidamente, com objetos “repetidos” ou nao, como queira! Considero uma má pratica a condicao while(true) como voce fez, pois nao tem necessidade de entrar no loop se a condicao nao for satisfeita e com “true” voce sempre entra no laço!
Ate
Jarf
Entendi Vini.
Mas a intenção eh essa mesmo, eh de ficar no loop e so poder adicionar no maximo 3 pessoas e qndo colocar +, cair na execeção e trata-la mostrando Vetor Cheio!
Por isso estou fazendo dessa forma, entendeu?
Vini_Fernandes
Entao voce tem que se preocupar na inclusao de mais de 3 pessoas! Inclua um contador para verificar se count <= usuarios.length.
Ate
Jarf
Mas se eu fizer um contador, ele vai parar por causa do contador, e não por ter dado um erro de exceder a quantidade que o array tem, não eh isso? Ou estou errado? =/
Vini_Fernandes
Era só mais uma forma de voce evitar o try/catch, mas como é necessario para seu problema entao deixe pra lá!!!
Abracao
Jarf
Pois é, eu preciso fazer com esse while(true) tosco e com tratamento de exceção
Mas valeu pelas dicas.
Se alguem puder me ajudar eu agradeço!!
abraços!!
Vini_Fernandes
Pra finalizar o seu problema, veja o qu esta faltando em seu codigo (e desta vez nao mudei nada…rsrs):
publicstaticvoidmain(String[]args){try{Scannerin=newScanner(System.in);Usuario[]usuarios=newUsuario[3];intk=0;//voce vai ter que incluir esse cara para incluir o novos usuario no arraywhile(true){System.out.print("Nome: ");Stringnome=in.next();if(nome.equalsIgnoreCase("Fim"))break;System.out.print("Telefone: ");Stringtelefone=in.next();Usuariousuario=newUsuario(nome,telefone);usuarios[k]=usuario;//aqui voce utiliza o inteiro para incluir o novo usuario no arrayk++;}for(inti=0;i<usuarios.length;i++){System.out.println("Nomes digitados \n"+usuarios[i]);//aqui vc se esquece que deve exibir os elementos do arrays ao invez do array em si}}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("Vetor Cheio!");}}
Funcionou legal!!!
abracao
Jarf
Ahh ta… entendi.
Mas agora não está funcionando o tratamento da exceção…
Esta adicionando varios e nom da erro qndo adiciona + de 3 :?
Vlw pela ajuda!!
Se alguem pudr me ajudar nessa exceção, eu acradeço.
abraços!!
Vini_Fernandes
Cara, esta tudo funcionando sim, inclusive o tratamento de excecao, porem a forma com que voce trata sua excecao é apenas emitir uma mensagem “Vetor cheio” para o sistema e nao faz mais nada!