Método não mostra o System.out.println [RESOLVIDO]

15 respostas
AITech_IX

Olá pessoal!

Tenho 2 métodos dentro da classe Email, que verificam se um email é válido e que captura o “nome” antes do @. O código roda sem erros, mas não aparece as mensagens do System.out. println da linhas 14 e 24 da classe Email…estaria eu errando em algum modificador de acesso? Muito obrigado pessoal!

public class Email {

	private String testaEmail = "";
		
	public void setTestaEmail(String testaEmail){
		this.testaEmail = testaEmail;
		}
	
	//metodo para validar o email
	
	public void validarEmail(){
		for (int i = 0 ; i < testaEmail.length() ; i++){
			if (testaEmail.indexOf(i) == '@'){
			System.out.println("E-mail válido");
			}
		}
	}
	
	//metodo para obter o nome
	public void obterNome(){
		for (int i = 0 ; i < testaEmail.length() ; i++){
			if (testaEmail.indexOf(i) == '@'){
			String nome = testaEmail.substring(0,i);
			System.out.println(nome);
			}
		}
	}
}
public class AvaliaEmail {

	public static void main (String[] args){
		Email c = new Email();
		
		c.setTestaEmail("[email removido]");
		
		c.validarEmail();
		c.obterNome();
	}
}

15 Respostas

julianofischer

Eai brother,
você tá usando alguma IDE?

peczenyj

vc esta usando indexOf ao contrario.

Vc informa um caracter e ele informa a primeira posição dele.

seu if deveria ser

String email = "[email removido]";
if(email.indexOf('@') != -1){
// email valido
} else {
// email invalido
}

Da documentação da classe string
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#indexOf(int)

indexOf

public int indexOf(int ch)
Returns the index within this string of the first occurrence of the specified character. If a character with value ch occurs in the character sequence represented by this String object, then the index of the first such occurrence is returned – that is, the smallest value k such that:
this.charAt(k) == ch

is true. If no such character occurs in this string, then -1 is returned.
Parameters:
ch - a character.
Returns:
the index of the first occurrence of the character in the character sequence represented by this object, or -1 if the character does not occur.

gabrielmskate

Troca o indexOf(i) por charAt(i)

public class Email {

	private String testaEmail = "";

	public void setTestaEmail(String testaEmail) {
		this.testaEmail = testaEmail;
	}

	// metodo para validar o email

	public void validarEmail() {
		System.out.println(testaEmail);
		for (int i = 0; i < testaEmail.length(); i++) {
			if (testaEmail.charAt(i) == '@') {
				System.out.println("E-mail válido");
			}
		}
	}

	// metodo para obter o nome
	public void obterNome() {
		for (int i = 0; i < testaEmail.length(); i++) {
			if (testaEmail.charAt(i) == '@') {
				String nome = testaEmail.substring(0, i);
				System.out.println(nome);
			}
		}
	}
}

[]s

UMC

tem o split("\@");

um exemplo:
aqui

vlw

AITech_IX

Poxa pessoal!!! Muito obrigado pela colaboração!! Problema resolvido!

abs a todos :smiley:

AITech_IX

julianofischer:
Eai brother,
você tá usando alguma IDE?

Nao uso ainda. Estou só no notepad! :slight_smile:

abs

pedroroxd

no método validar email, você poderia usar contains… ae você não ia precisar de lupi

AITech_IX

Contains?? Nao conheço…É para literalmente verificar o conteúdo de uma String?

pedroroxd
AITech IX:
pedroroxd:
no método validar email, você poderia usar contains... ae você não ia precisar de lupi

Contains?? Nao conheço...É para literalmente verificar o conteúdo de uma String?


quase isso... verficar se a String contém algo...

Tipo assim
String ola = "[email removido]";
		
		if (ola.contains("@")) 
			System.out.println("Ela tem @");
		
		else
			System.out.println("Ela não tem @");
pedroroxd
No seu exemplo, fazendo das 2 maneiras:
String emailaverificar = "[email removido]";
		//pelo contains:
		if (emailaverificar.contains("@")) 
			System.out.println("E-mail válido pelo contains");
		
		else
			System.out.println("E-mail inválido pelo contains");


		System.out.println(); //só pra dar espaço
	         //pelo lupi:
	         for (int  i = 0; i < emailaverificar.length(); i++) {  
		             if (emailaverificar.charAt(i) == '@')   
		                 System.out.println("E-mail válido pelo lupi");  		             
		    }
AITech_IX

Taí!!!Entendi :slight_smile:

Gostei muito Pedroroxd. Vlw cara!

abs

pedroroxd

=)
lembra que sempre que puder evitar o uso de laços, evite!
Leia isso que tá no link acima que eu postei no meu blog (inspirei em 1 site de outra pessoa)

AITech_IX

Bacana Pedro.

Cada dia que eu estudo Java me surpreendo mais e fico com a sensaçao de que tinha que ter começado antes… :lol:

Acho que to ficando fanático…isso não é bom. :shock:

Enfim, obrigado pela ajuda aqui no tópico. Se um dia em puder ajudar em alguma coisa, estamos aí!!!

UMC

Isso que é o bom!
te faz um programador de verdade!

vlw

AITech_IX

apenas um fato curioso:

Eu, durantes os ultimos 4 anos: “Programar?? Nunca! vou para área administrativa (nada contra, é pq faço engenharia elétrica) mas não quero fazer isso, não tenho nenhum talento…”

Eu, durantes os últimos 3 meses, após o único lugar que me concedeu estágio aqui na minha pequena cidade, devido ao curso integral:“Nossa, como programar é legal.!! Percebi que se tem algo que eu aprendi, foi isso. Quero seguir em frente!”

Tirem suas próprias conclusões… 8) :lol:

vlw

Criado 24 de abril de 2010
Ultima resposta 24 de abr. de 2010
Respostas 15
Participantes 6