If não está funcionando com array

eu criei esse método para identificar cada algarismo de um numeral, e nele tem um if que deve identificar um certo algarismo e mostrar uma mensagem, o método pode parecer inútil, mas como sou iniciante e estou estudando então primeiramente estou vendo se o que eu quero fazer funciona com esse pequeno método para depois fazer o código de verdade. Esse é o método, ele coloca cada dígito em uma posição do array.

public void setVerificador (String n) { char numeros[] = n.toCharArray(); for (int i = 0; i < numeros.length; i++) { //Acesse caracter a caracter aqui: System.out.println(numeros[i]); } if (numeros[numeros.length - 1] != 1){ System.out.println("texto"); } }
Se eu colocar == ele nunca mostra a mensagem, mas se colocar != mostra sempre, o que está errado?
Aproveitando aqui, n sei se dar para perceber mas é para ser usado nesse método somente números para preencher um array, mas só achei na net esse modo mas é para ser usado com strings e n achei nada que fosse para ser usado números, se alguem puder dar um força tb nisso agradeço.

Por que numeros é um array de char e não de int ?
Qual o valor de n ?
Voce quer verificar se o penultimo caracter é <> 1 ?

nesse caso seu, o if ta fora do FOR, então ele só faz isso uma vez, e não para cada caracter. é isso mesmo ?

Não confunda o número 1 com o caracter ‘1’ (cujo código ASCII ou UNICODE, por sinal, é 49 em decimal ou 0x31 em hexadecimal.)

Se quiser procurar o algarismo ‘1’, você precisa procurar por ‘1’, não por 1.

Não tem nada errado. Se vc colocar == ele só vai mostrar a mensagem se o caracter na posicao numeros.length - 1 for igual a 1;

É isso mesmo que o egamorim falou… cria um array de int…

[]s

[quote=egamorim]Por que numeros é um array de char e não de int ?
Qual o valor de n ?
Voce quer verificar se o penultimo caracter é <> 1 ?

nesse caso seu, o if ta fora do FOR, então ele só faz isso uma vez, e não para cada caracter. é isso mesmo ?[/quote]

Foi como disse, usei um array de char pq n conheço nenhum outro método para colocar os caracteres em cada posição do array como o toCharArray() faz.

[quote=fernandorsl][quote=Shatemui]
Se eu colocar == ele nunca mostra a mensagem, mas se colocar != mostra sempre, o que está errado?
[/quote]

Não tem nada errado. Se vc colocar == ele só vai mostrar a mensagem se o caracter na posicao numeros.length - 1 for igual a 1;

É isso mesmo que o egamorim falou… cria um array de int…

[]s
[/quote]

quando mudo para int aparece essa mensagem de erro “int cannot be dereferenced”

[quote=thingol]Não confunda o número 1 com o caracter ‘1’ (cujo código ASCII ou UNICODE, por sinal, é 49 em decimal ou 0x31 em hexadecimal.)

Se quiser procurar o algarismo ‘1’, você precisa procurar por ‘1’, não por 1.
[/quote]

Valeu, isso funcionou.