Substrings extraheren

C#:
Substrings extraheren

Hoe:

C# maakt het trekken van substrings uit een tekenreeks eenvoudig. Hier is een snelle blik op hoe het gedaan wordt met de Substring methode en tekenreeks snijden met bereikoperators.

string volledigeTekenreeks = "Hallo, Wereld! Het leven is prachtig.";
// Met Substring(startIndex, lengte)
string geextraheerd1 = volledigeTekenreeks.Substring(7, 5); // "Wereld"

Console.WriteLine(geextraheerd1); // Uitvoer: Wereld

// Met tekenreeks snijden met bereikoperator [..]
string geextraheerd2 = volledigeTekenreeks[13..24]; // "Het leven is"

Console.WriteLine(geextraheerd2); // Uitvoer: Het leven is

Diepgaand

Substrings zijn geen nieuwe truc. Ze bestaan al in talen zoals C en Java sinds jaar en dag. Echter, C# heeft het proces verfijnd met methodes en features die leesbaarheid en gebruiksgemak prioriteren.

Historisch gezien gebruikten programmeurs lussen en zorgvuldige indexberekeningen. De Substring methode in C# is een mooie upgrade. Het is eenvoudig - geef het een startindex en, optioneel, een lengte, en het doet het snijden voor je.

Het spektakel eindigt daar niet. Met C# 8.0 en verder zijn we geïntroduceerd aan bereikoperators zoals [..]. Ze maken natuurlijkere snijuitdrukkingen mogelijk, vooral bij het gebruik van indexen relatief aan het einde van de tekenreeks (aangeduid door de ^ operator).

Alternatieven voor Substring omvatten methodes zoals Split, Regex operaties, of tekenreeksmanipulatie met LINQ. De keuze hangt af van de situatie - je zou een CSV-lijn kunnen splitsen, een patroon met Regex kunnen zoeken, of substraten kunnen plukken met een fancy LINQ-uitdrukking.

Aan de implementatiekant zijn C# tekenreeksen onveranderlijk. Als je een substring neemt, verander je het origineel niet. In plaats daarvan maak je een nieuwe tekenreeks die een deel van de geheugenruimte van de ouder deelt - totdat je het wijzigt, en dan heeft het zijn eigen geheugentoewijzing.

Zie ook

Als je dieper wilt duiken of gerelateerde onderwerpen wilt verkennen, hier zijn enkele bronnen: