Matematiske Operationer på Char
Stryg for at vise menuen
Hvorfor er matematiske operationer mulige på char-typen?
Datatypen char er ganske interessant. Den gemmer tegn, men du kan også udføre operationer på denne datatype.
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 have troet, at resultatet ville være A(, men som vi kan se, er resultatet i. Hvorfor er det sådan? char er ikke udelukkende en tegn-datatype; den tager tegn fra ASCII-tabellen. Tegnet A svarer til tallet 65 i tabellen, mens tegnet ( svarer til tallet 40. Som du måske har gættet, svarer tegnet i til 105, da 65 + 40 = 105.
Her er et link til ASCII-tabellen.
Typekonvertering
I koden ovenfor har du måske bemærket denne usædvanlige syntaks:
char result = (char) (firstLetter + secondLetter);
Men hvorfor er (char) påkrævet? Addition returnerer et resultat af typen int, fordi den summerer de numeriske koder for tegnene. For at gemme dette resultat i en variabel af typen char, er en eksplicit konvertering nødvendig. Det er præcis det, (char)-konstruktionen gør—den konverterer den numeriske værdi tilbage til et tegn.
I vores eksempel er resultatet af additionen tallet 105. (char)-konstruktionen konverterer dette tal til det tegn, der svarer til kode 105 i ASCII-tabellen, hvilket er tegnet i.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat