charAt

Bom dia

Alguem sabe me dizer o porque esta acontecendo este erro
código

[code]import java.util.Scanner;

public class Valida_Email{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println(“Digite o seu e-mail:”);
String teste = sc.nextLine();
int cont=0;
for(cont=0;cont<teste.length();cont++){
String letra=teste.charAt(cont);
System.out.println(letra);
if(letra.equals("@")){
System.out.println(“tem arroba na posicao”+cont);
}
}
}
}[/code]

erro
C:\outros\exemplos>javac Valida_Email.java
Valida_Email.java:10: incompatible types
found : char
required: java.lang.String
String letra=teste.charAt(cont);
^
1 error

valeu

1 curtida

Olá
charAt retorna um char, e não uma String.
Abraços

Troque isto aqui:

 String letra=teste.charAt(cont);  

por isto aqui:

 String letra=teste.substring(cont, cont+1);  

Eu no seu lugar usaria “indexOf”. Procure na documentação como usar esse método da classe java.lang.String.

Voce está recebendo um char (charAt) e guardando numa string, logo incompatible types (os tipos são incompativeis).

Use direto o char, ou a classe Character.

eu tentei com char tb…

ai quando eu coloco

letra == “@”

ele nao me da resultado nenhum da um erro de tipo de variavel dinovo

Porque o char não fica entre 2 aspas, mas sim entre 1 aspa.

   letra == '@'

Amigo camarada e irmão…abandona este charAT…
o char n ajuda em nada…LOLOL :oops: (tou a bringar)

Use mesmo string.
e usa o metodo substring para o @

tive algo semelhante…

http://www.guj.com.br/posts/list/79472.java

Po eu fiz com index of pra ficar legal… ajudou mais e muito mais muito mais facil…
agora eu tenho uma unica dúvida… se uso o indexOf eu preciso necessáriamente colocar a palavra em um array ou posso simplesmente dar indexOf na variável mesmo.

To perguntando pq fiz um teste aqui e ele só achou o @ pq ele estava na primeira posição se eu coloco na quinta ele nao acha… Obs.: só achou pq eu só escrevi @

Seu código, modificado para usar indexOf:

import java.util.Scanner;

public class Valida_Email {
	public static void main (String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Digite o seu e-mail:");
		String teste = sc.nextLine();
        int pos;
        pos = teste.indexOf ("@");
        if (pos < 0) {
            System.out.println ("Não foi encontrada a arroba!");
        } else {
            System.out.println ("Encontrada a arroba na posição " + pos);
        }
	}
}

obrigado pelo código… mas o meu funcionou… eu encontrei o erro… eu estava colocando == 0 e nao >=0

se acha é 1 se nao acha é 0, comparator po…

valeu mesmo