"Amigo, jeg misunner deg. Å lære nye ting er så fantastisk! Og i dag venter et nytt og interessant emne på deg - bokstavelig talt."

"Tilsynelatende burde jeg si at jeg er den lykkeligste robostudenten på planeten, Rishi. Vel, jeg er klar til å suge til meg den nye kunnskapen!"

"La oss komme til det med en gang. Bokstaver er spesifikke data skrevet direkte i et programs kode. Vi snakker ikke om hvilke som helst data. Vi snakker bare om primitive typer og strenger.

Anta for eksempel at du har denne koden:

Kode Bokstaver
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

"De bokstavelige bokstavene i denne koden er tallet 5 , tallet 10 og strengen ' Sum = '.

Heltalls bokstaver

"I Java har alt, inkludert bokstaver, en type. Alle heltallsliteraler (heltall) i kode er ints . Int-typen er standard Java-heltallstypen."

"Jeg kjenner denne typen. Jeg har brukt den."

"Husker du andre heltallstyper enn int? Noen som tar mindre plass i minnet?"

"Selvfølgelig! Byte og kort."

"Det er de. Så hvis du i koden din bestemmer deg for å tilordne et heltallsliteral til en variabel av typen byte eller short, vil det ikke være noen problemer. Hovedsaken er at den bokstavelige verdien ligger innenfor verdiområdet som variabelens type kan lagre. Java-kompilatoren er smart nok til å forstå at en bytevariabel kan tildeles heltallsliteralen 100.

Eksempler:

Kode Beskrivelse
int a = 300;
Dette vil kompilere helt fint.
byte a = 100; 
Dette vil kompilere helt fint.
byte a = 300; 
Det vil oppstå en kompileringsfeil fordi den maksimale byteverdien er 127.

"Hva med den lange typen?"

"Vi kan også skrive bokstaver av denne typen i koden vår. For å gjøre dette, legg til den latinske bokstaven 'L' eller 'l' på slutten av heltallet.

Eksempler:

Kode Beskrivelse
long a = 3000000000L; 
Dette vil kompilere helt fint.
long a = 3000000000; 
Kompileringsfeil: 3 milliarder er for stort for en int literal.
int a = 3000000000L; 
Kompileringsfeil: bokstaven er en lang, men variabelen er en int. I tillegg er 3 milliarder mer enn den maksimale int.

"La du merke til hvor vanskelig det er å lese et stort antall på 10 eller flere sifre?

"Ja, hvis du ikke har robovision aktivert, vil det ikke umiddelbart være klart om vi snakker om 3 milliarder eller 30."

"For å gjøre koden mer lesbar (og dette er viktig!), tillater Java å sette inn understrekinger i numeriske bokstaver (de påvirker ikke verdien av tallet).

"Eksemplet ovenfor kan skrives om med understreker for å gjøre det litt klarere:

Kode Beskrivelse
long a = 3_000_000_000L; 
Dette vil kompilere helt fint.
long a = 3_000_000_000; 
Kompileringsfeil: 3 milliarder er for stort for en int literal.
int a = 3_000_000_000L; 
Kompileringsfeil: bokstaven er en lang, men variabelen er en int. I tillegg er 3 milliarder mer enn den maksimale int.

"Dette er mye mer praktisk å lese, selv om et komma i stedet for et understrek ville være mer kjent!"

"Men vi kan ikke bruke komma i numeriske bokstaver fordi de allerede brukes til et annet formål. For eksempel for å skille argumenter fra hverandre når man kaller en metode.

Reelle tall bokstaver

"Du har sikkert allerede gjettet at du i koden din kan spesifisere ikke bare heltall, men også flytende kommas (reelle tall)."

"Både dobler og flyter?"

"Ja. Egentlig er regelen ganske enkel: hvis et tall i koden har et desimaltegn, så er tallet en flytende bokstav. Og ikke hvilken som helst bokstavelig, men dobbel bokstav. For å lage en flytende bokstav ,du må sette bokstaven 'F' (eller 'f') på slutten av tallet .

Eksempler:

Kode Beskrivelse
double a = 100.0; 
Dette vil kompilere helt fint.
double a = 100.;
Dette vil kompilere helt fint.
double a = .0;
Dette vil kompilere helt fint.
float a = 100.0f; 
Dette vil kompilere helt fint.
float a = 100.0; 
Det vil oppstå en kompilasjonsfeil: variabelen er en float, men den bokstavelige er en dobbel.

"Forresten, du kan eksplisitt konvertere en heltallsliteral til en flytende eller dobbelliteral ved ganske enkelt å legge til suffikset "F" (for flytende ) eller D (for dobbel ). Eksempler:

Kode Beskrivelse
double a = 100D; 
Dette vil kompilere helt fint.
float a = 100F; 
Dette vil kompilere helt fint.
int a = 300D; 
Det vil være en kompileringsfeil: variabelen er en int, men bokstaven er en dobbel .

"Literaler med flytende komma kan bruke vitenskapelig notasjon : i tillegg til den fortegnede delen av tallet, kan du også angi en potens på ti. Eksempel:

Bokstavelig Matematisk notasjon Endelig verdi
1,23 E 2 1,23*10 2 123,0
1,23 E 3 1,23*103 1230,0
1,23 E -6 1,23*10 -6 0,00000123
1 E 6 1,0 *10 6 1000000,0
1 E -10 1,0*10 -10 0,0000000001

Streng bokstaver

"Du kan også spesifisere hele tekstlinjer i koden din. For å fortelle kompilatoren å behandle en streng som data (en bokstavelig) og ikke som en del av koden, er hele strengen omgitt av doble anførselstegn på begge sider.

"Hvis en enkelt linje med kode har flere doble anførselstegn, blir de delt inn i par. Det første doble anførselstegn indikerer begynnelsen av en bokstavelig. Den neste indikerer slutten av bokstaven. Den neste etter det markerer igjen begynnelsen på en ny bokstavelig. Og den neste markerer slutten på den andre bokstavelige. Og så videre.

"Hver slike bokstavelige er en streng .

Eksempler

Kode Forklaring
"+"+"+"+"+"+"+"+"+"
Det er 5 bokstaver på en linje. Hver av dem består av et enkelt '+'-tegn
""
Denne bokstavelige er en tom streng. En streng uten tegn.
"2+3"+"-5"
Det er to bokstaver her. Resultatet vil være strengen '2+3-5', ikke et tall
"return"+";"
Det er også to bokstaver her. Det er ingen returerklæring her.

"Hvis en streng er for lang, kan den deles opp i flere linjer og limes sammen med 'pluss-operatoren':

Kode Forklaring
String s = "I hold it true, whate'er befall"
         + "I feel it when I sorrow most;"
         + "'Tis better to have loved and lost"
         + "Than never to have loved at all.";
Hvis du sender ut denne linjen til skjermen, vil all teksten vises på en enkelt linje!

Karakterbokstaver

"Hva om jeg trenger en bokstav som er et enkelt tegn i stedet for en streng? Bør jeg lage en streng som består av et enkelt tegn?"

"Nei, i så fall trenger du en bokstavelig hvis type er char. Kan du gjette hvordan begynnelsen og slutten av en slik bokstavelig betegnes?"

"Enkelte sitater?"

"Ja, og inne i de enkle anførselstegnene må det være et tegn og bare ett tegn. Du kan ikke bruke tomme enkeltanførselstegn.

Eksempler:

Kode Forklaring
'A'
En bokstavelig hvis type er røye. Den inneholder den latinske bokstaven 'A'.
'@' 
En bokstavelig hvis type er røye. Den inneholder '@'-symbolet
'' 
En bokstavelig hvis type er røye. Den inneholder et japansk tegn. Og dette er også mulig.
'\u1f3a'
En bokstavelig hvis type er røye. Den inneholder et Unicode-tegn spesifisert av nummeret.

"Det siste eksemplet tildeler et Unicode-tegn ved hjelp av en spesiell notasjon: først har vi prefikset \u, etterfulgt av 4 heksadesimale tegn. Du vil lære mer om dette i de neste leksjonene."