IndexOf

Boa tarde…

Alguém poderia me disponibilizar algum material, ou explicar, sobre:
int indexOf(int ch, int fromIndex) e
int indexOf(int ch)

Já olhei no site da sun, porém não entendi, já pesquisei em outras fontes.

desde já, obrigada!

A prinmeita procura a primeira ocorrência (em qual índice) um determinado caracter se encontra no objeto string em questão a partir de uma determinada posição (índice)

System.out.println("thiago correa".indexOf('a',4));

Já o segundo pesquisa a primeira ocorrência do caracter desejado (busca desde o início da palavra)

System.out.println("thiago correa".indexOf('a'));

só por curiosidade, o segundo método chama a sua versão sobrecarregada (overloaded)

mas nos dois métodos é passado int, e não char

no primeiro sao dois int
e no segundo um int

Cada char tem uma representação numérida, por isso ele recebe um int, mas você pode passar um char igual!

Vamos ver o que o javadoc diz

como pode-se ler, em ambos os casos ele recebe um caracter (ou o seu código unicode)

então os valores de um char são em cima da tabela Unicode ?

podes me mostrar um exemplo??

Posso:

       int a = (int) 'a';    
       System.out.println( a );
       
       int A = (int) 'A';
       System.out.println( A );

Pegue o resutado abra o notepad e digite Alt+ <número que foi impresso> (97 e 65 respectivamente) você verá que aparecerá a e A.

Ahh moço, muito obrigada!

agora deu certo.

Mas ainda tenho uma dúvida, porque assim, ele vai converte o ‘a’ para o valor unicode certo?

mas na tabela unicode, o valor de ‘a’ é outro.

De fato, na tabela Unicode, o valor da letra “A” é U+0041 (ou seja, 0x41, ou 41 em hexadecimal, o que é 65 em decimal).
Mas o código (65 em decimal ou 41 em hexadecimal) é exatamente o mesmo, só varia o modo de representar.

A letra “a” minúscula tem o código U+0061 (ou seja, 0x61, ou 61 em hexadecimal, ou 97 em decimal).

Ahh táá! ^^

muito obrigada!

valeu thiago bela explicação. :lol: