Tenho um exercício de Java para a faculdade e estou com dificuldade na primeira parte dele, eu sempre tenho dificuldade em passar a lógica para a sintaxe correta da linguagem. O exercício é o seguinte:
“Construir uma classe em Java que tenha um vetor de String e que a partir de métodos da classe Scanner leia o nome de dez pessoas, armazenando neste vetor. Imprima todos os nomes compostos por mais de uma palavra (Ex.: João Paulo, Gabriel Duarte de Carvalho, Maria Fernanda, Mariana da Costa) armazenados no vetor. Fazer um tratamento de exceção para que caso tente imprimir uma posição que não exista no vetor, imprima “Posição não existe no vetor””
Já sei fazer o tratamento dessa exceção.
Minha dúvida é, como vou imprimir apenas os nomes compostos?
Pensei em algo que identifique os espaços " " na string e sinalize como nome composto mas se o usuário der espaço no nome ele vai acabar identificando como nome composto também.
Desde já obrigado.
Use o método contains
da classe String passando como argumento " ".
[objetoDaList].get(nomeDoContador).contains(" ")
1 curtida
Tem como fazer sem usar coleções? Na verdade esse é um trabalho pequeno para ser entregue no final de Outubro, ainda não vimos Coleções mas como o tema é sobre exceções achei que já daria para fazer (eu já sei fazer o tratamento da exceção pedida no texto).
Sim, você consegue invocar esse método a partir de qualquer objeto String, pois é um método “instanciado” da classe String, ou seja :
[QualquerObjetoDeString].contains(...)
1 curtida
Boa noite.
Me desculpe a demora, o método funcionou, mas e se o usuário digitar um espaço após um nome único? Eu fiz isso de teste dando espaço após um único nome e ele acabou caindo na flag.
Obrigado.
@Felipe_Oliveira1 o que vc pode fazer é tratar a entrada tipo nome e sobrenome onde o campo nome não poderia haver espaços e o segundo a vontade e no final concatenar se necessário para exibir o nome inteiro, por exemplo
firstName= blah;
lastName= da Silva pereira;
System.out.println(firstName + lastName);
Não sei se você pode fazer isso no exercício, é apenas uma ideia mesmo =P
2 curtidas
como os velhos exemplos que ja vi na internet…“há varias maneiras de se trocar uma lampada”- Logica de Programação
1 curtida
Obrigado a todos, acabou que o professor quer mesmo o tratamento da exceção, não importando se um nome simples vai cair na flag.
Ps: Essas manipulações com string dão muita dor de cabeça, como os caras tratam isso na vida real? Isso é tratado a nível de Banco de Dados ou máscaras?
@Felipe_Oliveira1 na prática, basicamente vai existir um input com máscara javascript para não deixar entrar nenhum caractere estranho e no backend existe outra trativa para a mesma coisa… Com relação à como é armazenado existem várias soluções, já vi sistemas que no banco de dados possui 2 campos na tabela para nome e sobrenome que para salvar ele realmente faz um split por espaço e separa nos seus devidos campos, já vi também sistemas que ele salva o nome completo e na hora de exibir o primeiro nome faz um split (apenas para exibição) igual você falou no seu exercício…
Se tiver mais dúvidas manda ae que vou respondendo o que eu puder 
1 curtida