Oi pessoal preciso de um help de vocês.
Tenho que criar um programa que receba o nome do usuário da tela. E exiba na tela as iniciais do nome todo em letra maiúscula. Fiz da forma que postei abaixo, porém o programa não compila. Não sei o que estou fazendo de errado.
Trecho do código
System.out.print("Nome: ");Stringnome=input.nextLine();Stringnomes=nome.trim().toUpperCase();nomes.split(" ");nomes.trim();String[]partesNome=nomes.split(" ");Stringiniciais=" ";charletra=' ';String[]reservadas={"DO","DOS","DA","DAS","DE","A"};for(intini=0;ini<partesNome.length;ini++){if(partesNome==reservadas){continue;letra=partesNome.charAt(0);iniciais+=letra;}}System.out.printf("%15s %c","\nIniciais do nome: ",iniciais);
Scannerinput=newScanner(System.in);System.out.print("Nome: ");Stringnome=input.nextLine().toUpperCase();System.out.print("Iniciais do Nome: ");System.out.print(nome.charAt(0));for(inti=0;i<nome.length();i++){if(nome.charAt(i)==' '){System.out.print(nome.charAt(i+1));}}
do jeito que vc fez tem alguns erros na hora do for
por exemplo:
partesNome.charAt(0);
como é um array vc deve colocar da seguinte forma
partesNome[ini].charAt(0);
V
vick01
Obrigada MuCReis funcionou.
Outra Dúvida 1
Agora como faço para remover os espaços em branco entre as letras caso seje digitado assim:
Usuário entra com: Maria Firmina Costa
Imprime assim: MF C
Gostaria que saísse assim: MFC
Estou usando o trim() mais não está funcionando para mais de um espaço em branco digitado.
Outra Dúvida 2
Na hora que imprimir as iniciais do nome, não pode considerar as iniciais dos conectores (preposições) tipo assim:
Usuário entra: Maria Firmina da Costa
Imprime iniciais: MFDC
O “D” não é para sair, pois é um conectivo.
Fiz um if lá na solução que postei, mas não sei se está certo, ou se existe outra forma de fazer.
Obrigada
W
willCesar
Caro vick01,
Quanto a sua duvida 1, só pode utilizar o metodo replaceAll de uma String, pesquisa sobre ele, tem uma utilidade boa, quanto a duvida 2 seu laco for tá quse certo.
Vou explicar o que tá errado e voce tenta corrigir.
o laco for ta certo
for(intini=0; ini < partesNome.length; ini ++){
seu if esta verificando se o vetor partesNome inteiro é igual ao vetor reservadas inteiro, ou seja a mesmo que o usuario tenha o nome de “DO”, “DOS”, “DA”, “DAS”, “DE”, “A”, examente assim nunca entrará no seu if.