publicstaticvoidmain(String[]args){String[]nome=newString[15];intw=0;Scanners=newScanner(System.in);System.out.println("Digite 15 nomes para ordenação em ordem alfabética");System.out.println("Digite 0 (zero) e pressone 'ENTER'a qualquer momento para ordenar menos que 15 nomes");for(w=0;w<=nome.length;w++){System.out.printf("Digite o %dº nome: ",w+1);nome[w]=s.nextLine();if(nome[w].equalsIgnoreCase("0")){w=15;}}Arrays.sort(nome);// Ordena em ordem crescentefor(w=0;w<=nome.length-1;w++){System.out.printf("%dº Nome: %S\n",w+1,nome[w]);}}}
Sim, mas você você não falou ainda qual é a sua dúvida?
Porque assim fica um pouco complicado de entendê-la.
E
elisanmaster
WendersonLP:
Sim, mas você você não falou ainda qual é a sua dúvida?
Porque assim fica um pouco complicado de entendê-la.
Então, até pegar os nomes e ordenar está beleza…
O problema é se o usuário quiser digitar menos que 15 nomes…
Ai o problemas diz que eu devo encerrar o programa quando o usuario digitar 0 (zero)
Mas isso não consigo fazer…
Pelo fato de ser String e ter que comparar com 0… sei lah…
Deu pra entender melhor??
abelgomes
esclareça meslhor sua duvida, ams de cara vc pode fazer assim.
Retirar
Acho que não posso fazer essa comparação de String com EQUALS…
=’[
abelgomes
coloca aquele if com o break antes de atribuir o valor nome[w] = s.nextLine();
e atribuir o valor digitado a uma variavel pra ficar melhor de v c entender…
e na linha que vc varre o vetor pra imprimir…coloque somente até onde o vetor esta preenchido.
Ou seja, pergunte se o vetor[w] é null…ou entao faça um for assim
for(Stringstr:vetor){
//imprimeonome....
}
aconselho vc a perguntar se o vetor[w] é null…se sim break;
fica melhor pra vc entender…depois faz usando o foreach…
E
elisanmaster
abelgomes:
coloca aquele if com o break antes de atribuir o valor nome[w] = s.nextLine();
e atribuir o valor digitado a uma variavel pra ficar melhor de v c entender…
e na linha que vc varre o vetor pra imprimir…coloque somente até onde o vetor esta preenchido.
Ou seja, pergunte se o vetor[w] é null…ou entao faça um for assim
for(Stringstr:vetor){
//imprimeonome....
}
aconselho vc a perguntar se o vetor[w] é null…se sim break;
fica melhor pra vc entender…depois faz usando o foreach…
Saquei, o único problema é que o exercício obriga a ser daquele jeito finalizando quando digitado 0…
Então o desafio é pegar a String do Vetor, no caso nome[w] e comparar com zero…
Sendo que não pode ser: If ( nome[w] == “0”), pois é uma String e comparações assim nao funcionam com String…
E acabei de ler um tópico onde diz que quando é Vetor o comando Equals não funciona…
…
abelgomes
claro que funciona o equals…
olha só…
packageguj;importjava.util.Arrays;importjava.util.Scanner;publicclassEx1{publicstaticvoidmain(String[]args){String[]nome=newString[15];intw=0;Scanners=newScanner(System.in);System.out.println("Digite 15 nomes para ordenação em ordem alfabética");System.out.println("Digite 0 (zero) e pressone 'ENTER'a qualquer momento para ordenar menos que 15 nomes");for(w=0;w<nome.length;w++){System.out.printf("Digite o %dº nome: ",w+1);Stringstr=s.nextLine();if(str.equalsIgnoreCase("0")){break;}nome[w]=str;}for(inti=0;i<nome.length;i++){if(nome[i]==null)nome[i]="";}Arrays.sort(nome);// Ordena em ordem crescentefor(Stringsrt:nome){System.out.println(srt);}}}
ve ai se consegue entender…nao sou de fazr isso cara…só fiz pq tow de saida e nao queria lhe deixar na mao…o nullpointer estava dando pq o restante das posiçoes era null e na hora do sort dava zica…ai eu coloquei “” e funfou…outra coisa é a respeito do indice…se vai começar de 0 nao usa <= use somente <
flw vou nessa…
E
elisanmaster
abelgomes:
claro que funciona o equals…
olha só…
packageguj;importjava.util.Arrays;importjava.util.Scanner;publicclassEx1{publicstaticvoidmain(String[]args){String[]nome=newString[15];intw=0;Scanners=newScanner(System.in);System.out.println("Digite 15 nomes para ordenação em ordem alfabética");System.out.println("Digite 0 (zero) e pressone 'ENTER'a qualquer momento para ordenar menos que 15 nomes");for(w=0;w<nome.length;w++){System.out.printf("Digite o %dº nome: ",w+1);Stringstr=s.nextLine();if(str.equalsIgnoreCase("0")){break;}nome[w]=str;}for(inti=0;i<nome.length;i++){if(nome[i]==null)nome[i]="";}Arrays.sort(nome);// Ordena em ordem crescentefor(Stringsrt:nome){System.out.println(srt);}}}
ve ai se consegue entender…nao sou de fazr isso cara…só fiz pq tow de saida e nao queria lhe deixar na mao…o nullpointer estava dando pq o restante das posiçoes era null e na hora do sort dava zica…ai eu coloquei “” e funfou…outra coisa é a respeito do indice…se vai começar de 0 nao usa <= use somente <
flw vou nessa…
Funcionou mesmo, Valeu pela ajuda e pela Dica!!! =]]]