String

  • Is een reference type.
  • Is een character-array maar niet volledig te benaderen als array.
  • Is een immutable type = éénmaal een waarde toegekend is, kan de waarde niet meer gewijzigd worden. Als er bewerkingen op gedaan worden als trimmen, dan wordt een copy van de string genomen.

Declaratie en initialisatie

// Als empty string initialiseren (zijn alle 3 hetzelfde)
string s = String.Empty; 
string s = string.Empty;
string s = "";

string s = null;
string s = "Hello world!";

Het is aangeraden om als empty string te initialiseren in plaats van null om allerlei exceptions te vermijden.

Empty strings

String.IsNullOrEmpty() controleert of een string de waarde null of geen lengte heeft.

String.IsNullOrWhiteSpace() controleert hetzelfde als IsNullOrEmpty() en daarnaast ook of het enkel white spaces bevat. Het doet hetzelfde als String.IsNullOrEmpty(s) || s.Trim().Length == 0; maar is performanter. Een white space is gedefinieerd door Char.IsWhiteSpace().

De meest performante manier om voor een lege string te controleren is String.Length == 0.

if (s.Length != 0)
    return s;

Property en methodes

String.Compare("", ""); // 0
String.Compare("", "a"); // -1, een lege string is altijd eerst in orde
String.Compare("a", "b"); // -1
String.Compare("", ""); // 0
String.Compare("choco", "chauffauge"); // 1, de 'a' van chauffauge komt voor de 'o' van choco
String.Compare("abc", "AbC", true); 
// 0, derde parameter boolean true zegt om niet case-sensitive te werken (ignoreCase). 

val s1 = "choco";
val s2 = "chocomousse";

s2.Contains(s1); // true, choco zit in chocomousse
s1.Equals(s2); // false, doet hetzelfde als s1 == s2

String.Equals() vs ==

In tegenstelling tot Java waar enkel Equals werkt, kun je in C# zowel == als Equals() gebruiken om de inhoud van twee strings te vergelijken. Bij andere objecten wordt met == gekeken of ze naar hetzelfde object wijzen (en dit is ook wat er gebeurt in Java als je == op strings gebruikt).

// Doen hetzelfde in C#
if (s1 == s2)
if (s1.Equals(s2))

Escape sequences \

  • \n newline
  • \t tab
  • \' enkel aanhalingsteken
  • \" dubbel aanhalingsteken
  • \a system alert/beep
  • \\ backslash
  • en meer... zie Escape sequences.
Console.WriteLine("\"Hello\", \tworld!\n"); 
// "Hello",     world!

Je kan ook werken met verbatim strings @, dan hoef je normale karakters niet te escapen, met uitzondering van één karakter: het dubbel aanhalingsteken ". Dit wordt vaak gebruikt voor paden (naar bvb bestanden), reguliere expressies en multi-line tekst (SQL).

Console.WriteLine(@"""Hello"", world!"); // "Hello", world!
Console.WriteLine("C:\\Users\\Rich"); // C:\Users\Rich
Console.WriteLine(@"C:\Users\Rich"); // C:\Users\Rich
String select = @"
SELECT Foo
FROM Bar
WHERE Name='Baz'";

Extra informatie

Bronnen


results matching ""

    No results matching ""