Tot nu toe kon je teksten enkel aan elkaar plakken met het +-teken. Daarnaast
bestaan er ook heel wat functies die je op tekstvariabelen (string’s) kan
uitvoeren. Net zoals bij de klasse Math roep je zo’n functie op door achter de
naam van de variabele een punt te zetten, gevolgd door de naam van de
functie. We beperken ons voorlopig tot een paar veelgebruikte mogelijkheden.
Bekijk de onderstaande code. Daarin staat één tekstvariabele eenTekst, en
daarop roepen we telkens een andere functie op:
string eenTekst = "Deze variabele bevat een stukje tekst";
Console.WriteLine(eenTekst.Length);
Console.WriteLine(eenTekst.Substring(5, 2));
Console.WriteLine(eenTekst.ToUpper());
Console.WriteLine(eenTekst.ToLower());
Console.WriteLine(eenTekst.IndexOf("va"));
Console.WriteLine(eenTekst.Replace("variabele", "va"));
De tabel hieronder toont voor elke regel wat er getoond wordt, en legt uit wat de functie doet.
| Functie | Resultaat | Beschrijving |
|---|---|---|
eenTekst.Length |
37 |
Geeft de lengte van de tekst (het aantal tekens, spaties inbegrepen). |
eenTekst.Substring(5, 2) |
va |
Geeft een deel van de tekst terug. De eerste parameter is de startpositie (we beginnen te tellen op 0, dus positie 5 is eigenlijk het 6de teken), de tweede parameter is het aantal tekens. |
eenTekst.ToUpper() |
DEZE VARIABELE BEVAT EEN STUKJE TEKST |
Zet de hele tekst om naar hoofdletters. |
eenTekst.ToLower() |
deze variabele bevat een stukje tekst |
Zet de hele tekst om naar kleine letters. |
eenTekst.IndexOf("va") |
5 |
Zoekt naar de positie van het eerste voorkomen van de substring "va". Gevonden? Dan krijg je het (nulgebaseerde) indexnummer terug. Niet gevonden? Dan geeft de functie -1 terug. |
eenTekst.Replace("variabele", "va") |
Deze va bevat een stukje tekst |
Vervangt elke keer dat "variabele" voorkomt door "va". |
Zowel Substring als IndexOf werken met nulgebaseerde posities: het
allereerste teken van een tekst staat op positie 0, het tweede op positie 1,
enzovoort. Dat is even wennen, maar het is een patroon dat in bijna elke
programmeertaal terugkomt.
| Teken | D | e | z | e | (spatie) | v | a | ... |
|---|---|---|---|---|---|---|---|---|
| Positie | 0 | 1 | 2 | 3 | 4 | 5 | 6 | ... |
Omdat v op positie 5 staat, geeft eenTekst.IndexOf("va") dus 5 terug, en
levert eenTekst.Substring(5, 2) de twee tekens vanaf positie 5 op: va.
Let op met
Substring: vraag je meer tekens dan er nog overblijven (of geef je een startpositie die niet bestaat), dan loopt je programma op een fout. Houd er dus rekening mee hoe lang een tekst is voor je er een stuk uit haalt.
Functies geven steeds een nieuwe waarde terug; je kan ze dus net als bij Math
combineren of het resultaat in een variabele opvangen.
string naam = "ahmed";
// Eerste letter als hoofdletter, rest gewoon
Console.WriteLine(naam.Substring(0, 1).ToUpper()); // A
// De laatste 3 tekens
Console.WriteLine(naam.Substring(naam.Length - 3)); // med
Roep je Substring met één parameter op, dan krijg je alles vanaf die
positie tot het einde. Combineer dat met Length om bijvoorbeeld de laatste
tekens van een tekst te pakken: naam.Substring(naam.Length - 3) start op het
derde teken van achteren.