Java: Sintaxe - Imprimir apenas nomes compostos em um vetor de String
8 respostasResolvido
vetorprogramaçãostringjava
F
Felipe_Oliveira1
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.
Use o método contains da classe String passando como argumento " ".
[objetoDaList].get(nomeDoContador).contains(" ")
F
Felipe_Oliveira1
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).
J
JoaoPLima1 like
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(...)
F
Felipe_Oliveira1
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.
Não sei se você pode fazer isso no exercício, é apenas uma ideia mesmo =P
J
Jederson_Andre1 like
como os velhos exemplos que ja vi na internet…“há varias maneiras de se trocar uma lampada”- Logica de Programação
F
Felipe_Oliveira1
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?
R
rodrigo.chibana1 like
@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