charAt

9 respostas
henry.everton

Bom dia

Alguem sabe me dizer o porque esta acontecendo este erro código
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);
			}		
	}
}
}

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

9 Respostas

tnaires

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

T

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.

Guilherme_Gomes

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.

henry.everton

eu tentei com char tb…

ai quando eu coloco

letra == “@”

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

Andre_Brito

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

letra == '@'
Alkamavo

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

henry.everton

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 @

T

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);
        }
	}
}
henry.everton

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

Criado 16 de janeiro de 2008
Ultima resposta 16 de jan. de 2008
Respostas 9
Participantes 6