Quote Originariamente inviata da el92 Visualizza il messaggio
Ciao ho un problemino con i char....fare la diffrenza di tra 2 char vuol dire sottrarre i lore valori ascii..fin qui ok..ma se sottraggo un char ed un char,sotto forma di numero(es:'0' zero) perchè non mi riconosce il carattere?

i primi 2 output mi vengono 35 e 0...ma poi perchè il terzo output mi viene 42 ed il quarto *?È come se non riconoscesse il carattere zero e non riuscisse a convertore il risultato in char.Perhè?
I caratteri '0' '1' ... '9' hanno codice 48, 49 ... 57

getNumericValue (sia nella versione con char che con int codepoint) fornisce (se possibile) il valore numerico rappresentato da un qualunque carattere Unicode. E non vale solo per le cifre decimali ASCII. Ad esempio il carattere ۹ (codice Unicode U+06F9) è un carattere Arabo che vale 9 come indicato anche da getNumericValue. Inoltre getNumericValue considera A-Z come numeri 10...35.

h.carattereprova('Z') fa 90 (codice di 'Z') meno 48 (codice di '0') = 42

E il codepoint 42 passato a toChars dà un array che contiene il carattere * perché 42 è il suo codice.