מחרוזות ב-C#

תוים מיוחדים במחרוזות

כדי להשתמש במחרוזת בתו \ ב-C# צריך להשתמש בתו כפול \\.

static void Main(string[] args) {
    string path = "c:\\Users\\Desktop\\gm";
    Console.WriteLine(path);        
    Console.ReadLine();
}

הסיבה היא ש-\ הוא תו מיוחד ולכן התו של \ מסמן לקחת את התו שאחריו כמו שהוא ולא להשתמש במשמעות שלו. תו נוסף שנצטרך להשתמש בו ב-\ מקדים הוא ".

דרך נוספת להשיג את זה היא על ידי שימוש ב-@ מקדים.

string path = @"c:\Users\Desktop\gm";

במקרה שמשמשים ב-@ כדי להכניס " למחרוזת, נשתמש ב-"", כדי למנוע את סגירת המחרוזת לפני הסוף.

String formatting

במשפטים קצרים, הדרך המהירה להציג טקסט ומשתנים היא על ידי שימוש ב-+.

static void Main(string[] args) {
    string name = "Jack";
    int age = 23;

    Console.WriteLine("Your name is " + name + ", your age is " + age);
    Console.ReadLine();
}

דרך נוספת להציג משתנים היא על ידי שמירת מקום למשתנים על ידי מספרים ושליחת המשתנים לפי הסדר.

static void Main(string[] args) {
    string name = "Jack";
    int age = 23;

    Console.WriteLine("Your name is {0}, your age is {1}", name, age);
    Console.ReadLine();
}

String interpolation

דרך נוספת להביע משתנים וטקסט ביחד ולשמור על קוד קריא היא על ידי שימוש בסימן ה-$ עם שמות המשתנים בתוך סוגריים מסולסלים.

static void Main(string[] args) {
    string name = "Jack";
    int age = 23;

    Console.WriteLine($"Your name is {name}, your age is {age}");
    Console.ReadLine();
}

String concatenation

כל הדרכים שראינו להצגה של משתנים ומחרוזות יחד יכולים לשמש לחיבור הטקסט והמשתנים לתוך משתנה מחרוזת אחד.

אם יש לנו מערך של מחרוזות, אפשר לחבר אותם למשתנה אחד על ידי שימוש בפונקציה Concat/

string[] names = new string[] {"name1", "name2", "name3"};
string allNames = string.Concat(names);

Empty string

באתחול מחרוזת אפשר לשים ערך של מחרוזת ריקה.

string name1 = "";
string name2 = string.Empty;

אפשר להשתמש ב-string.Empty כדי לבדוק האם יש ערך בתוך משתנה מחרוזת.

String Equals function

אם רוצים להשוות בין מחרוזות אפשר לעשות את זה עם השוואה רגילה של ==. יותר נכון להשתמש בפונקציית Equals, שיכולה להשוות את הערך גם אם סוג המשתנה לא זהה.

if(message1.Equals(message2)){
...
}

String iteration looping

מחרוזת מאוחסנת כמערך ויש אפשרות לגשת למקום מסויים במחרוזת על פי אינדקס.

string message = "C# course";
Console.WriteLine(message[0]); // Returns C

גישה לאורך של מחרוזת.

Console.WriteLine(message.Length);

בדיקה האם מחרוזת מכילה מחרוזת אחרת. מחזירה true או false.

message.Contains("C");

String IsNullOrEmpty function

יש לנו פונקציה נוספת לבדיקה האם מחרוזת ריקה: IsNullOrEmpty. הבדיקה הזאת בודקת גם את הערך של המחרוזת, האם הוא ריק, וגם האם הערך של המחרוזת הוא null. במקרה של null שימוש בפונקציה Equal יתן שגיאה כי יש ניסיון להפעיל פונקציה על ערך null.

if(string.IsNullOrEmpty(message)){
...
}

String replace

אם רוצים להחליף תווים במחרוזת, אפשר להשתמש בפונקציית replace. היא מקבלת כמשתנה ראשון את התו שרוצים להחליף וכמשתנה שני את התו שרוצים לשים במקומו. בדוגמא נוריד את כל הרווחים שבמחרוזת, כלומר החליף תו רווח בתו ריק. הפונקציה מחזירה מחרוזת חדשה.

string test = "Some info here";
string testWithputSpaces = test.Replace(" ", "");