...
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
// 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 tegnnå 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.
...