Considere o código Java de um método para validação de núme...
Considere o código Java de um método para validação de números de cartões de crédito:
Nesse método, a expressão
cartao.charAt(i)-'0'
tem a função de
Comentários
Veja os comentários dos nossos alunos
Corrigindo o colega Leandro.
O examinador não pediu a função ou o resultado do código - método validaCC - e sim a função da expressão:
cartao.charAt(i)-'0'
Observem que na assinatura do método validaCC a variável cartAO é do tipo String.
Podemos inferir ( a maioria possui cartão de crédito, que não os possui já já vai irá logo após a nomeação) que números do cartão de créditos são dígitos.
Observem no GABARITO DA QUESTÃO - ALTERNATIVA B:
b) converter um dígito na forma de caractere em seu valor numérico correspondente
Em outras palavras ele extrai, através da função charAt, cada digito da variável cartão, convertendo para inteiro e atribuindo a variável num
A operação cartao.charAt(i)-'0' converte o caractere de índice i da string cartão em seu número equivalente porque os caracteres são, na verdade, números hexadecimais na tabela Unicode (ou ASCII, dependendo da linguagem) e os dígitos (0-9) são dispostos em sequência. Assim, subtrair algum dígito (por exemplo, '9') por '0' é o mesmo que subtrair o número do dígito (039) pelo número de '0 (030)':
Correspondências da tabela Unicode
número hexadecimal | caractere
030 | '0'
031 | '1'
032 | '2'
033 | '3'
034 | '4'
035 | '5'
036 | '6'
037 | '7'
038 | '8'
039 | '9'
Por exemplo, '9' - '0' = 039 - 030 = 9 (número).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo