Matematiska Operationer på Char
Svep för att visa menyn
Varför är matematiska operationer möjliga på char-typen?
Datatypen char är ganska intressant. Den lagrar tecken, men du kan också utföra operationer på denna datatyp.
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 skulle kunna tro att resultatet skulle vara A(, men som vi ser är resultatet i. Varför är det så? char är inte enbart en teckendatatyp; den hämtar tecken från ASCII-tabellen. Tecknet A motsvarar talet 65 i tabellen, medan tecknet ( motsvarar talet 40. Som du kanske har gissat motsvarar tecknet i 105, eftersom 65 + 40 = 105.
Här är en länk till ASCII-tabellen.
Typomvandling
I koden ovan kanske du har lagt märke till denna ovanliga syntax:
char result = (char) (firstLetter + secondLetter);
Men varför behövs (char)? Addition returnerar ett resultat av typen int eftersom den summerar de numeriska koderna för tecknen. För att lagra detta resultat i en variabel av typen char krävs en explicit konvertering. Det är precis vad (char) gör—det konverterar det numeriska värdet tillbaka till ett tecken.
I vårt exempel är resultatet av additionen talet 105. Konstruktionen (char) konverterar detta tal till det tecken som motsvarar koden 105 i ASCII-tabellen, vilket råkar vara tecknet i.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal