Eu queria saber se têm como eu fazer com que o programa mostre apenas as iniciais do nome em maiúsculo sem as preposições. Na hora que imprimir as iniciais do nome, não pode considerar as iniciais dos conectores, como no caso de “José da Silva”:
publicstaticvoidmain(String[]args){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));}}}
No caso de José da Silva, o retorno seria apenas JS? É isso?
D
Darlonge
Na verdade seria qualquer nome que o usuário digitasse. Podia ser, João da Silva, Marcelo de costa e outros. Qualquer nome que contenha, e, do, da, dos, das, de, di, du, não deverão aparecer em maiúsculo no terminal.
L
Solucao aceita
Lucas_Camara
Ah sim, entendi. Usei José da Silva só como exemplo para tentar entender a ideia.
Montei um código aqui, veja se é isso:
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args)throwsException{Scannerinput=newScanner(System.in);String[]conectores=newString[]{"e","do","da","dos","das","de","di","du"};System.out.print("Nome: ");Stringnome=input.nextLine();String[]partesNome=nome.split(" ");Stringabreviacao="";for(StringparteNome:partesNome){if(!verificarConector(conectores,parteNome)){abreviacao+=Character.toUpperCase(parteNome.charAt(0));}}System.out.println("Iniciais do Nome: "+abreviacao);input.close();}privatestaticbooleanverificarConector(String[]conectores,StringparteNome){for(Stringc:conectores){if(parteNome.equalsIgnoreCase(c)){returntrue;}}returnfalse;}}