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 de eigenschap of functie doet.

Property (eigenschap)ResultaatBeschrijving
Een property = een eigenschap waarvan je de waarde opvraagt, zonder haakjes ()
int lengte = eenTekst.Length lengte = 37 Geeft de lengte van de tekst (het aantal tekens, spaties inbegrepen).
FunctieResultaatBeschrijving
Een functie voert een actie of berekening uit en gebruikt haakjes ()
string resultaat= 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.
string resultaat= eenTekst.ToUpper() DEZE VARIABELE BEVAT EEN STUKJE TEKST Zet de hele tekst om naar hoofdletters.
string resultaat=eenTekst.ToLower() deze variabele bevat een stukje tekst Zet de hele tekst om naar kleine letters.
int resultaat = 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.
string resultaat= eenTekst.Replace("variabele", "va") Deze va bevat een stukje tekst Vervangt elke keer dat "variabele" voorkomt door "va".

Tellen begint bij 0

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.

TekenDeze(spatie)va...
Positie0123456...

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.

Een paar handige combinaties

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
string resultaat =naam.Substring(0, 1).ToUpper(); 
Console.WriteLine(resultaat));   // 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.