Acho desnecessário usar char… prefiro navegar na String com Substring até encontrar o espaço.
Veja se assim resolve…
publicclassRevisNome{publicstaticvoidmain(String[]arg){Stringnome="David Kennedy Souza Araujo";StringprimeiroNome="";for(inti=0;i<nome.length();i++){if((i==0)&&(nome.substring(i,i+1).equalsIgnoreCase(" "))){System.out.println("Erro: Nome digitado iniciado com tecla ESPAÇO.");break;}elseif(!nome.substring(i,i+1).equalsIgnoreCase(" ")){primeiroNome+=nome.substring(i,i+1);}elsebreak;}System.out.println(primeiroNome);}}
Abraços
DavidUser
muito bom, mais sou leigo em java, pode me explicar qual a utilidade do break e como foi o seu raciocínio?
DavidUser
Ja consegui o seguinte modelo que funciona! mais não sei bem como foi criado, não estou conseguindo iterpretar
DavidUser
publicstaticvoidmain(String[]arg){Stringnome=JOptionPane.showInputDialog(null,"Insira o nome completo:");StringprimeiroNome="";for(inti=0;i<nome.length();i++){if(nome.charAt(i)==' '){System.out.println("Primeiro nome: "+primeiroNome);break;}else{primeiroNome+=nome.charAt(i);}}}}
M
manueleferreira
O break faz com que o loop seja finalizado e a execução continue. A idéia dele é interar uma string e quando chegar num caracter vazio o programe pare, pois é claro que o primeiro nome já foi achado. No entanto, ele faz um tratamento se a string iniciar com um caracter (isso faz com que o programa não funcione direito). Outra forma mais simples de fazer abaixo:
Olha aí… esse codigo ta melhor que o meu… eu esqueci do charAt…
na primeira condição do If, ele compara o caracter lido com o espaço. se for o espaço, imprime o atributo primeiroNome;
Obs.: o break é usado para parar uma estrutura de repetição, como For, While, Switch (onde é mais usado). Qdo é chamado, a estrutura de repetição se quebra e não é mais executada.
no caso do else, ou seja, se o caracter nao for o espaço, ele vai add ao primeiroNome o carcater lido.
Olá David, desculpe esqueci de explicar o funcioanemto do meu código ali no outro fórum que você criou.
Mas exlicando sobre o split que foi citado ali emcima e que eu havia pedido para você ler a documentação:
O método split recebe como parâmetro uma String, e ele irá quebrar a String que você estiver usando tendo como quesito de quebra a String que o método recebe como parâmetro; e o retorno do método é um array de String contendo em casa posição um trecho do texto que ele dividiu.
Por exemplo:
Stringtexto="Exemplo de split";String[]resultado=texto.split(" ");for(inti=0;i<resultado.length;i++){System.out.println(resultado[i]);}
Tem como saída:
Exemplo
de
split
Então é por esse motivo que você precisa fazer nomeCompleto.split(" ")[0], porque o split está retornando um vetor com todas as partes do nome da pessoa, e como você quer apenas o primeiro, acessa direto a posição zero do array.