Matematiske Operasjoner på Char
Hvorfor er matematiske operasjoner mulig på char-typen?
Datatypen char er ganske interessant. Den lagrer tegn, men du kan også utføre operasjoner på denne datatypen.
Hva blir resultatet av å kjøre denne koden?
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { char firstLetter = 'A'; char secondLetter = '('; // We use type casting here to convert value from `int` to `char` char result = (char) (firstLetter + secondLetter); System.out.println(result); } }
Man kunne kanskje trodd at resultatet ville være A(, men som vi ser, er resultatet i. Hvorfor det? char er ikke en ren tegn-datatype; den henter tegn fra ASCII-tabellen. Tegnet A tilsvarer tallet 65 i tabellen, mens tegnet ( tilsvarer tallet 40. Som du kanskje har gjettet, tilsvarer tegnet i 105, fordi 65 + 40 = 105.
Det er viktig å vite dette fordi det gir oss mulighet til å operere utmerket og fleksibelt på char-datatypen.
Her er en lenke til ASCII-tabellen.
Typestøping
I koden over har du kanskje lagt merke til denne uvanlige syntaksen:
char result = (char) (firstLetter + secondLetter);
Men hvorfor er (char) nødvendig? Addisjonsoperasjonen returnerer et resultat av typen int fordi den summerer de numeriske kodene til tegnene. For å lagre dette resultatet i en variabel av typen char, er en eksplisitt konvertering nødvendig. Det er nettopp dette (char)-uttrykket gjør—det konverterer den numeriske verdien tilbake til et tegn.
I vårt eksempel er resultatet av addisjonen tallet 105. (char)-uttrykket konverterer dette tallet til tegnet som tilsvarer kode 105 i ASCII-tabellen, som tilfeldigvis er tegnet i.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 2.7
Matematiske Operasjoner på Char
Sveip for å vise menyen
Hvorfor er matematiske operasjoner mulig på char-typen?
Datatypen char er ganske interessant. Den lagrer tegn, men du kan også utføre operasjoner på denne datatypen.
Hva blir resultatet av å kjøre denne koden?
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { char firstLetter = 'A'; char secondLetter = '('; // We use type casting here to convert value from `int` to `char` char result = (char) (firstLetter + secondLetter); System.out.println(result); } }
Man kunne kanskje trodd at resultatet ville være A(, men som vi ser, er resultatet i. Hvorfor det? char er ikke en ren tegn-datatype; den henter tegn fra ASCII-tabellen. Tegnet A tilsvarer tallet 65 i tabellen, mens tegnet ( tilsvarer tallet 40. Som du kanskje har gjettet, tilsvarer tegnet i 105, fordi 65 + 40 = 105.
Det er viktig å vite dette fordi det gir oss mulighet til å operere utmerket og fleksibelt på char-datatypen.
Her er en lenke til ASCII-tabellen.
Typestøping
I koden over har du kanskje lagt merke til denne uvanlige syntaksen:
char result = (char) (firstLetter + secondLetter);
Men hvorfor er (char) nødvendig? Addisjonsoperasjonen returnerer et resultat av typen int fordi den summerer de numeriske kodene til tegnene. For å lagre dette resultatet i en variabel av typen char, er en eksplisitt konvertering nødvendig. Det er nettopp dette (char)-uttrykket gjør—det konverterer den numeriske verdien tilbake til et tegn.
I vårt eksempel er resultatet av addisjonen tallet 105. (char)-uttrykket konverterer dette tallet til tegnet som tilsvarer kode 105 i ASCII-tabellen, som tilfeldigvis er tegnet i.
Takk for tilbakemeldingene dine!