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