stringAan de slag met string


Opmerkingen

Deze sectie geeft een overzicht van wat een string is en waarom een ontwikkelaar deze misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen een string vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor tekenreeksen nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Versie Opmerking Publicatiedatum
ASCII-reeks 7 bit 1963/06/17
UTF-8 8 bit standaard, variabele lengte door surrogaten 1992/09/30
UCS-2 16 bit, zoals UTF-16 zonder surrogaten, gebruikte mijn Microsoft Windows NT 1993/07/23
UTF-16 16 bit standaard, variabele lengte door surrogaten 1996/07/31

strings

Een string is een reeks letterlijke lettertekens. Tot op heden worden tekenreeksen ondersteund door alle moderne programmeertalen, 1 maar er is geen consensus tussen taalontwerpers over hoe tekenreeksen moeten worden geclassificeerd. Wat het ontwerp van de programmeertaal betreft, zijn er twee primaire aandachtspunten.

  1. Moet een string worden behandeld als een primitieve- of een samengestelde waarde?
  2. Welke stringbewerkingen moeten door de taal zelf worden geleverd? 2

Door van een string een primitieve waarde te maken, zijn de stringbewerkingen die door de taal worden geleverd allemaal ingebouwd; en kan niet worden gedefinieerd in de taal zelf. Dit maakt bepaalde optimalisaties op compilerniveau mogelijk - specifiek met betrekking tot geheugenlay-out en hergebruik van strings met behulp van een zogenaamde stringpool. De afweging ligt in het niet kunnen gebruiken van drop in vervangingen voor de stringbewerkingen, en dergelijke functies zouden moeten worden aangeroepen met behulp van normale functie-aanroepen terwijl de syntaxis voor het gebruik van ingebouwde bewerkingen meestal duidelijk anders is. Het gevolg is dat als en wanneer effectievere algoritmen worden ontdekt, men niet eenvoudig kan veranderen welke stringbibliotheek men gebruikt. Een gekunsteld voorbeeld is het hebben van substring-zoekopdrachten als onderdeel van de kernfuncties voordat het zoekalgoritme Boyer – Moore werd ontwikkeld.

Omgekeerd, door een string te definiëren als een samengestelde waarde zoals een array van tekens, worden alle gebruikelijke arraybewerkingen automatisch van toepassing op strings. Dit heeft echter tot gevolg dat alle tekenreeksen in de taal een vaste lengte hebben. 3

Uiteindelijk is een andere benadering het weergeven van tekenreeksen als een lijst met tekens waarmee - net als bij arrays - de weergave alle lijstbewerkingen kan overnemen.

1 Bewaar de meer esoterische zoals Piet
2 Talen bieden meestal tekenreeksvergelijkingen, voornamelijk gelijkheid, aaneengeschakelde tekenreeksen met andere tekenreeksen, waarbij enkele tekens en subreeksen worden vervangen en lexografische sortering van tekenreeksen. 3 Meestal