Versions Compared

Key

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

...


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

Hva kan man/er meningsfylt å gjøre med en String
- Hente deler av teksten
- Forandre  Forandre hele, eller deler av teksten (store/små bokstaver) 
- Konvertering mellom siffer og tall, f.eks. fra "1" til 1
- Hente deler av teksten
- Konvertere primitive datatyper til tekstform
- Sammenligne teksten med andre tekster

...

Code Block
languagejava
titleString i java
linenumberstrue
// Det er verdt å merke seg at 1) og 2) nedenfor er ekvivalente. Dette sier noe om hvordan en String er bygd opp

// 1)  
String str = "abc";
 
// 2) 
char data[] = {'a', 'b', 'c'};
String str = new String(data);


// Andre egenskaper ved String

String tekst;
String tekst2; 
 
tekst = "hEi"; // I java defineres en String-verdi med doble apostrofer
tekst2 = "HeI";
tekst == tekst2; // false, det skilles mellom store og små bokstaver.

 
 
//forandre på en String
 
tekst = String.toLowerCase(tekst); // Hele tekst gjøres liten
 
String navngammelTekst = "OlaHello NormannWorld";
 
int tellingnyTekst = navngammelTekst.length(replace('l','r'); //nyTekst Tellerhar tegn iverdien strengen. Merk at whitespace er også et tegn

// Om vi vil hente fornavnet til Ola kan det gjøres ved å tenke på navn som en tabell.

String fornavn = navn.substring(0,3); // Henter de tre første elementene i "tabellen"
char initial = fornavn.charAt(0); // Setter initial lik 'O'"Herro Worrd"
 
String kontonr = "1234.78.4567";
kontonr.split("."); //Vil dele opp teksten på stringen "." og returnere et String-Array: {"1234","78","4567"}
 
 
//hente ut deler av en tekst
String navn = "Ola Normann";
 
int telling = navn.length(); // Teller tegn i strengen. Merk at whitespace er også et tegn

// Om vi vil hente fornavnet til Ola kan det gjøres ved å tenke på navn som en tabell.
String fornavn = navn.substring(0,3); // Henter de tre første elementene i "tabellen"
char initial = fornavn.charAt(0); // Setter initial lik 'O'
 
navn.indexOf("a"); returnerer 2, altså første gang strengen "a" forekommer i teksten
navn.indexOf("d"); returnerer -1, altså vet vi at det ikke finnes en "d" i Normann. OBS. metoden er case-sensitiv
 
 
//Konverting fra primitive datatyper til String-objekter. Her bruker vi den statiske metoden valueOf()
int tall = 1;
String.valueOf(tall)// gir "1"
boolean bool = true;
String.valueOf(bool)// gir "true"
char tegn = 'a'
String.valueOf(tegn)// gir "a"
//Dette gjøres i mange tilfeller automatisk
String tallSomTekst = "" + 1; //tallSomTekst har nå verdien "1"
String tallSomTekst2 = 1 + 4 + ""//tallSomTekst har nå verdien "5" 
String tallSomTekst3 = "" + 1 + 4;//dette vil faktisk gi verdien "14"
 
 
//Sammenligne tekster
 
String tekst1 = new String("abc")
String tekst2 = new String ("abc")
tekst1 == tekst2 //gir false, dette er fordi på objekter så sammenlignes pekeren ved bruk av == og ikke verdien.
tekst1.equals(tekst2) // gir true
//OBS!
tekst1 = "abc";
tekst2 = "abc";
tekst1 == tekst2 //dette vil gi true pga. hvordan compileren behandler denne typen instantiering og bruker derfor samme peker. Sammeligne tekster slik fører ofte til bugs og frarådes
 
 


Logiske data
:

Logiske data kan bare ta en av to mulige verdier, true eller false. Logiske data er også kjent som boolsk data.
I mange språk kan true/false også representeres som  1/0 (evt null), eller streng-med-tegn/streng-uten-tegn. 

Boolean

Dersom vi har data som uttrykker en enten-eller-verdi er det hensiktsmessig å representere dataene som en boolean.
En boolean kan bare ta to verdier, true eller false, og boolske data brukes gjerne i kontrollstrukturer. 

...