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
[code]System.out.print("Nome: “);
String nome = input.nextLine();
String nomes = nome.trim().toUpperCase();
nomes.split(” ");
nomes.trim();
String[] partesNome = nomes.split(" ");
String iniciais = " ";
char letra = ' ';
String[] reservadas = {"DO", "DOS", "DA", "DAS", "DE", "A"};
for (int ini = 0; ini < partesNome.length; ini ++){
if ( partesNome == reservadas ){
continue;
letra = partesNome.charAt(0);
iniciais += letra;
}
}
System.out.printf("%15s %c", "\nIniciais do nome: ", iniciais); [/code]
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.
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 (int ini = 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.
if ( partesNome == reservadas ){
continue;
letra = partesNome.charAt(0);
iniciais += letra;
}
}