Matematiske Operationer på Char
Stryg for at vise menuen
Hvorfor er matematiske operationer mulige på char-typen?
Datatypen char er ret 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); } }
Her bruger du +-tegnet til at sammenkæde to forskellige variabler.
Man kunne måske tro, 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 table.
Typekonvertering
I koden ovenfor har du måske bemærket denne usædvanlige syntaks:
char result = (char) (firstLetter + secondLetter);
Men hvorfor er (char) nødvendig? Additionsoperationen 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, hvad (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 tilfældigvis 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