Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Improved information about char

...

Når vi skal lagre tekst eller tegn brukes datatypene String eller char.


Char (Character)

Dersom vi har data bestående av en bokstav, et siffer eller et tegn kan dataene være av typen char
Teknisk sett ligger alle char-verdier etter hverandre på en tall linje, slik som integers. Alle char kan derav representeres som en tallverdi. Her er en oversikt over hvilken verdi hver char representerer.

Klassen Character bruker den primitive datatypen char og danner et objekt rundt. Klassen har mange metoder som er svært nyttig når vi skal behandle en char.

Hva kan man/er meningsfylt å gjøre med en char

-  Klassifisere klassifisere data som som bokstav, stor/liten bokstav, siffer
- Gjøre om til stor/liten bokstav
- Konvertering mellom siffer og tall, f.eks. fra ‘1’ til 1
- Sammenligne med andre char-data

Code Block
languagejava
titleChar i java
linenumberstrue
char tegn;

tegn = 'A'; // I java defineres en char med enkle apostrofer.
Character.isLetter(tegn); // returnerer true siden 'A' er en bokstav
Character.isDigit(tegn); // returnerer false siden 'A' ikke er et siffer
tegn = Character.toLowerCase(tegn); // tegn settes lik 'a' ved hjelp av en forhåndsdefinert metode som finnes i java
 
 
tegn = '#'; // Lovlig char-verdi
tegn = 't5'; // Ulovlig char-verdi, kan ikke bestå av flere tegn. Se String i stedet
tegn = '\''; // Setter tegn lik '. Backslash sørger for at neste tegn blir tolket som et vanlig symbol istedet for en del av syntaxen.
 
tegn = '2'; // Lovlig char-verdi
tegn == 2; // false, da int og char ikke er like, selv om verdien ser lik ut.


//Konvertering mellom char og int krever litt triksing:


// 1) Hvis man forsøke caste en char til int, vil dette gi svært rare resultater:

int heltall = (int) tegn;  // heltall settes lik 50?? 

// Dette skyldes, som nevnt ovenfor, at alle char-verdier ligger på en tall-linje. Vi vet nå at '2' er representert på plass 50 langs denne tall-linjen.

// 2) I java må vi konvertere char-verdien til en StingString, og deretter "parse" String-verdien til et integer. Det kan gjøres slik
 
String s = Character.toString(tegn); // Bruker en ny forhåndsdefinert metode i java
int heltall = Integer.parseInt(s); // heltall settes nå lik integer-verdien 2.
 
//Sammenligne chars
char tegn1 = 'a';
char tegn2 = 'e';
int svar1;
int svar2;

svar1 = Character.compare(tegn1, tegn2);//Nyttig hvis man vil vite hvilken bokstav som er først i alfabetet for eksempel. Neste linje viser hvordan det funker.
svar2 = tegn1-tegn2;//Trekker desimal verdien til tegn2 fra tegn1. Viktig at char'ene har samme "case", Upper eller Lower
System.out.println(svar1)//printer ut -4
svar1 == svar2 //Dette vil alltid være true


String


Dersom vi har data bestående av tekst/flere tegn,siffer,bokstaver vil dataene være av typen String
En String kan sees på som en tabell med char-verdier. Dersom vi vil forandre på teksten tabellen lager, modifiserer vi enten hele tabellen, eller enkelte char-verdier i tabellen

...