Manipulere strenge
Tip
Se fanen Tekst og billeder for flere detaljer!
Tekst er en af de mest almindelige typer data i programmering. I C#repræsenteres tekst som en streng – en sekvens af tegn omsluttet af dobbelte anførselstegn. C# indeholder mange indbyggede måder at manipulere og formatere strenge på.
Sammenkædning (sammenføjning af strenge)
Du kan joinforbinde to eller flere strenge til en enkelt streng ved hjælp af operatoren + :
string first = "Hello";
string last = "world";
string message = first + ", " + last + "!";
Console.WriteLine(message);
Udgang:
Hello, world!
Selvom sammenkædning fungerer fint til enkle kombinationer, kan det blive rodet, når du forsøger at blande variabler, tegnsætning og mellemrum sammen.
En bedre måde: Strenginterpolering
En renere, moderne måde at kombinere strenge og variabler på er med strenginterpolering. Hvis du vil oprette denne type streng, skal du placere et dollartegn ($) direkte før dit startcitat og placere eventuelle variabelnavne i krøllede klammeparenteser {}:
string name = "Alex";
Console.WriteLine($"Hello, {name}!");
Udgang:
Hello, Alex!
Du kan selv prøve at køre denne kode i C#-kodeeditoren.
En renere måde at kombinere input og output på
Strenginterpolering løser det problem, vi så tidligere med Console.ReadLine(). Nu kan du nemt blande tekst og variabler:
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}! Nice to meet you.");
Dette er meget renere end sammenkædning med +.
Note
Hvis du glemmer præfikset $ (f.eks. Console.WriteLine("Hello, {name}")), ser C# ikke ud i klammeparenteserne – det udskrives {name} bogstaveligt talt på skærmen.
Almindelige strengmetoder
C#-strenge har mange indbyggede metoder til almindelige handlinger. Hvis du vil bruge en metode, skal du skrive variabelnavnet, en prik og metodenavnet efterfulgt af parenteser:
| Metode | Hvad den gør | Eksempel | Resultat |
|---|---|---|---|
.ToUpper() |
Konverterer tekst til store bogstaver | "hello".ToUpper() |
"HELLO" |
.ToLower() |
Konverterer tekst til små bogstaver | "HELLO".ToLower() |
"hello" |
.Replace(old, new) |
Ombytter bestemte tegn | "cat".Replace("c", "b") |
"bat" |
.Length |
Returnerer antallet af tegn | "Alex".Length |
4 |
Praktisk eksempel
Her kan du se, hvordan du kan bruge disse teknikker sammen:
Console.Write("What's your name? ");
string name = Console.ReadLine();
string greeting = $"Welcome, {name.ToUpper()}!";
Console.WriteLine(greeting);
Hvis brugeren skriver alex, er outputtet:
What's your name? alex
Welcome, ALEX!
Bemærk, hvordan .ToUpper() konverterede brugerens input til store bogstaver, og strenginterpolering gjorde det nemt at kombinere alt sammen.