Explicar este código (Verifica letra)

7 respostas
N

Alguém me explicar melhor este codio, e o que o index.of faz?

public class Verif2 {
	public static void main(String[] args) {
		String palavra1="ana";
		String A = "a";
		if (A.indexOf(palavra1.charAt(0)) != -1) {
			System.out.println("Alo");
		}
	}
}

*ele verifica se a Primeira letra da palavra é A. Mas queria que alguem me explicasse, não entendi muito bem!

7 Respostas

otaviojava

Acontece o seguinte.
Ele nessa condição verifica se existe a letra a na veriável a.

Ele pega a palavra1 e pega somente o primeiro caracter.

se for diferente de -1 ou seja se existir, já que se ele não encontra ele retorna -1, ele vai executar o que está dentro do laço.

mews
O que o nosso amigo explicou está correto. Eu na verdade não faria dessa forma. Se o única função desse código for validar a primeira letra da variável palavra1 seria mais interessante utilizar o método boleano startsWith().
public static void main(String[] args)
{
	String palavra1 = "ana";
	String A = "a";
		
	if (palavra1.startsWith(A))
	{
		System.out.println("Alo");
	}
}
otaviojava

Realmente dessa forma está mais elegante, mas se eu não me engano esse método verifica o início e compara com a String.
E no outro modo ele varre a String toda.

mews

Olá otaviojava,

O método charAt() da classe string retornar o caracter de um index da string.
No caso do nosso amigo, ele queria o primeiro caracter.

palavra1.charAt(0)

e quando ele faz:

A.indexOf()

Como a variável só tem um caracter, esse método irá retornar 0 ou -1.

Resumindo: Não há varredura da String.

otaviojava

Hum.
Entendi.
Você tem realmente tem razão.

R

Lembrando que o startsWith() só está disponivel a partir do Java 1.6 …

mews

Muito bem observado.

Criado 29 de dezembro de 2010
Ultima resposta 29 de dez. de 2010
Respostas 7
Participantes 4