Kort introduktion till strängar och tecken
Strängar
-
En sträng är en följd av 0 eller flera tecken (bokstäver, siffror,
specialtecken, ...)
-
Strängar ("strängkonstanter") omges av citationstecken
(Exempel: "Ciao!")
-
Datatypen för att hantera strängar heter
String som är
en klass och inte en primitiv typ.
-
En variabel deklarerad som
String innehåller inte själva strängen utan
endast en referens (adress, pekare) till ett så kallat
String-objekt där texten finns lagrad
-
Ett
String-objekt kan inte ändras men en
String-variabel kan sättas att referera ett annat
String-objekt
-
Operatorn
+ används för att sätta ihop
(konkatenera) strängar.
Exempel:
|
Prova!
|
Kommentar
|
|
String name ="Kalle";
String familyName = "Andersson";
int age = 14;
|
|
| String fullName = name + " " + familyName; |
Konkatenering |
| fullname + " är " + age + " år"
| Blanding av strängar och tal
|
| 1 + 2 + "hej" |
|
| 1 + (2 + "hej") |
|
| "hej" + 1 + 2 |
|
| "hej \n du \t\tglade! " |
Vad gör specialtecknen \n och \t? |
Teckenvariabler
Typen
char används för att hantera enskilda tecken
(bokstäver, siffror, skiljetecken, ...)
-
Typen
char är en primitiv datatyp (på samma sätt som int och double)
och ett värde är exakt ett tecken.
-
Ett teckenvärde (teckenkonstant) omges av apostrofer ('). Exempel:
'a', '7', '.',
'+', ...
-
Tecken representeras internt med en heltalskod som kallas
Unicode. Den rymmer cirka 65000 värden.
Värdena från 0 till 127 överensstämmer med den så kallade ASCII-koden.
-
Teckenvärden konverteras automatiskt till heltal om de ingår i
en aritmetisk operation.
|
Prova!
|
'x' |
| (int)'x' |
| (char)(int)'x' |
| 'x' + 1 |
| (char)('x' + 1) |
Övningar
-
Tag reda på koden för bokstaven A genom att skriva ett uttryck i
interaktionsrutan
Svar
(int)'a'
-
Låt teckenvariabeln
c innehåller en bokstav.
Skriv ett uttryck som har nästa bokstav som värde.
(De internationella bokstäverna kommer i sekvens.
Gemena för sig och versaler var för sig.)
Svar
(char)(c+1)
-
Låt teckenvariabeln
c innehålla en gemen (liten) bokstav.
Skriv ett uttryck som har motsvarande stora bokstav som värde.
Svar
(char)(c+('A'-'a'))
-
Vad är koden för de svenska bokstäverna å, ä och ö?
Är det något underligt med
dessa koder jämfört med andra bokstavskoder?
Svar
Skriv
(int)'å'
för att se koden för bokstaven å.
-
Skriv ett uttryck som vars värde är en slumpmässig bokstav (a - z).
Svar
(char)((int)(Math.random()*26) + 'a')
Tillbaka