Considere o código Java de um método para validação de núme...

Próximas questões
Com base no mesmo assunto
Q1655598 Programação

Considere o código Java de um método para validação de números de cartões de crédito:


Imagem associada para resolução da questão


Nesse método, a expressão

cartao.charAt(i)-'0'

tem a função de

Alternativas

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