Glra, to com uma dificuldade no seguinte exercício:
Tenho que imprimir um nome completo no seguinte formato:
Ex.:
Maria de Bragança da Silva Oliveira
Maria B. S. Oliveira
João Pereira Silva Santos
João P. S. Santos
Eu já consegui separar o 1º nome o ultimo nome e os nomes do meio, mas a dificuldade está quando encontra a palavra com letra minuscula (ex.: “de”).
Eis o código:
import java.util.Scanner;
public class Exe04 {
public static void main(String[] args) {
Scanner dados = new Scanner(System.in);
String nome;
int a = 0, b = 0, c, x;
System.out.print("Informe o nome completo: ");
nome = dados.nextLine();
// Separando o 1º nome:
for (x = 0; x < nome.length(); x++) {
if (nome.charAt(x) == ' ') {
a = x;
break;
}
}
// Separando o ultimo nome
for (x = nome.length() - 1; x >= 0; x--) {
if (nome.charAt(x) == ' ') {
b = x;
break;
}
}
System.out.print(nome.substring(0, a));
// Separando o/os nomes do meio
for (c = a; c < b; c++) {
if (nome.charAt(c) == ' ') {
if (nome.charAt(c) == 'd') {
c = c + 2;
}
System.out.print(" " + nome.charAt(c+1) + ". ");
}
}
System.out.print(nome.substring(b, nome.length()));
}
}
Quem tiver a disponibilidade de tempo pra me ajudar, eu agradeço. Vlw.