Skip to main content

String

Een String wordt gebruikt om tekst gegevens op te slaan. n Dart kun je in een string alle tekens gebruiken, maar je moet opletten met het gebruik van enkele aanhalingstekens (') en dubbele aanhalingstekens (").

String naam = 'Jan'; //Enkele aanhalingstekens ('): Gebruik voor eenvoudige strings.
String dubbel = "Dit is een string met een 'enkel' aanhalingsteken"; //Dubbele aanhalingstekens ("): Gebruik als de string zelf een enkel aanhalingsteken bevat.
String escapetekens = 'Dit is een string met een \'escaped\' enkel aanhalingsteken'; //Escapetekens: Gebruik een backslash (\) om speciale tekens in strings te ontsnappen.
String begroeting = 'Hallo, $naam!'; //Interpolatie: Gebruik het dollarteken ($) om variabelen in de string op te nemen.

Met interpolatie kun je eenvoudig variabelen en expressies in strings gebruiken:

int leeftijd = 25;
String info = 'Leeftijd: $leeftijd jaar';

In Dart kun je een string prefixen met de letter r om het als een “raw” string te markeren, wat betekent dat speciale tekens en interpolatie niet worden verwerkt.

 print(r"dat kost $12,-"); // Output: dat kost $12,-
  • De string wordt exact afgedrukt zoals deze is geschreven, inclusief het dollarteken ($).
  • Er wordt geen variabele substitutie of escape verwerking uitgevoerd.

Dit is handig als je letterlijk een dollarteken of andere speciale tekens in je string wilt weergeven zonder dat Dart probeert deze te interpreteren.

Je kunt ook multi-line strings maken met behulp van drie enkele aanhalingstekens (''' ''') of drie dubbele aanhalingstekens (""" """):

void main() {
  String multiLineString = '''Dit is een
multi-line
string.''';
  
  print(multiLineString);
}

Strings in Dart ondersteunen string-interpolatie, wat betekent dat je variabelen en expressies in een string kunt opnemen door ze te omgeven met $ of ${}:

void main() {
  String naam = 'Alice';
  int leeftijd = 30;
  
  String bericht = 'Hallo, mijn naam is $naam en ik ben $leeftijd jaar oud.';
  print(bericht); // Output: Hallo, mijn naam is Alice en ik ben 30 jaar oud.
}

In Dart kun je speciale tekens in een string gebruiken door escape-sequenties te gebruiken. Deze beginnen met een backslash (\). Hier zijn enkele veelvoorkomende escape-sequenties:

  • \n: Nieuwe regel
  • \t: Tab
  • \\: Backslash
  • \': Enkele aanhalingstekens
  • \": Dubbele aanhalingstekens
  • \r: Carriage return

Hier is een voorbeeld waarin deze escape-sequenties worden gebruikt:

void main() {
  String nieuweRegel = 'Dit is de eerste regel.\nDit is de tweede regel.';
  String tab = 'Kolom1\tKolom2';
  String backslash = 'Een enkele backslash: \\';
  String enkeleAanhalingstekens = 'It\'s easy to escape single quotes.';
  String dubbeleAanhalingstekens = "Hij zei: \"Hallo!\"";

  print(nieuweRegel);
  print(tab);
  print(backslash);
  print(enkeleAanhalingstekens);
  print(dubbeleAanhalingstekens);
}

Als je een string hebt die backslashes bevat en je wilt niet dat ze als escape-sequenties worden geïnterpreteerd, kun je een rauwe string gebruiken door een r voor de string te zetten:

void main() {
  String rauweString = r'Dit is een rauwe string. Hier is een backslash: \n En hier is nog een: \\';
  
  print(rauweString); // Output: Dit is een rauwe string. Hier is een backslash: \n En hier is nog een: \\
}

Met een rauwe string worden de backslashes en de tekens die erop volgen precies zo geïnterpreteerd als ze zijn getypt, zonder speciale betekenis.

Methodes

In het kort, een string in Dart is een tekstuele data type dat wordt gebruikt voor het opslaan en manipuleren van tekst.

length: Geeft de lengte van de string.

String str = 'Hello';<br>int len = str.length; // 5

isEmpty: Controleert of de string leeg is.

String str = '';<br>bool empty = str.isEmpty; // true<br>

isNotEmpty: Controleert of de string niet leeg is.

String str = 'Hello';<br>bool notEmpty = str.isNotEmpty; // true<br>

substring(int start, [int end]): Haalt een deel van de string op vanaf de opgegeven indexen.

String str = 'Hello, Dart';
String sub = str.substring(0, 5); // 'Hello'

toUpperCase(): Zet alle karakters in een string om naar hoofdletters.

dartCode kopiëren<code>String str = 'Hello';
String upper = str.toUpperCase(); // 'HELLO'
</code>

toLowerCase(): Zet alle karakters in een string om naar kleine letters.

String str = 'Hello';
String lower = str.toLowerCase(); // 'hello'

trim(): Verwijdert witruimte aan het begin en einde van de string.

String str = '  Hello  ';
String trimmed = str.trim(); // 'Hello'

split(Pattern pattern): Splitst de string op basis van het opgegeven patroon en retourneert een lijst van substrings.

String str = 'Hello, Dart';
List<String> parts = str.split(', '); // ['Hello', 'Dart']

replaceAll(Pattern from, String replace): Vervangt alle voorkomens van een bepaald patroon in de string door een andere string.

String str = 'Hello, Dart';<br>String replaced = str.replaceAll('Dart', 'World'); // 'Hello, World'

replaceFirst(Pattern from, String replace, [int startIndex = 0]): Vervangt het eerste voorkomen van een bepaald patroon in de string door een andere string.

String str = 'Hello, Dart and Dart';<br>String replaced = str.replaceFirst('Dart', 'World'); // 'Hello, World and Dart'

contains(Pattern other, [int startIndex = 0]): Controleert of de string een bepaalde substring bevat.

String str = 'Hello, Dart';
bool containsDart = str.contains('Dart'); // true

startsWith(Pattern pattern, [int startIndex = 0]): Controleert of de string begint met een bepaalde substring.

str = 'Hello, Dart';<br>bool startsWithHello = str.startsWith('Hello'); // true<br>

endsWith(String other): Controleert of de string eindigt met een bepaalde substring.

String str = 'Hello, Dart';
bool endsWithDart = str.endsWith('Dart'); // true

indexOf(Pattern pattern, [int start = 0]): Geeft de index van het eerste voorkomen van het patroon.

String str = 'Hello, Dart';<br>int index = str.indexOf('Dart'); // 7

lastIndexOf(Pattern pattern, [int start]): Geeft de index van het laatste voorkomen van het patroon.

String str = 'Hello, Dart and Dart';<br>int lastIndex = str.lastIndexOf('Dart'); // 15

codeUnitAt(int index): Geeft de Unicode code unit van het karakter op de gegeven index.

String str = 'Hello';<br>int code = str.codeUnitAt(0); // 72 (Unicode voor 'H')

compareTo(String other): Vergelijkt twee strings lexicografisch.

String str1 = 'Hello';<br>String str2 = 'World';<br>int comparison = str1.compareTo(str2); // negatief getal omdat 'Hello' komt voor 'World'

padLeft(int width, [String padding = ' ']): Voegt padding toe aan de linkerzijde van de string tot de opgegeven breedte is bereikt.

String str = 'Hello';<br>String padded = str.padLeft(10); // '     Hello'

padRight(int width, [String padding = ' ']): Voegt padding toe aan de rechterzijde van de string tot de opgegeven breedte is bereikt.

String str = 'Hello';<br>String padded = str.padRight(10); // 'Hello     '

repeat(int times): Herhaalt de string het opgegeven aantal keren.

String str = 'Hello';<br>String repeated = str.repeat(3); // 'HelloHelloHello'