מדריך C# – עבודה עם מחרוזות (string)

‏ • Sela

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

התכונה Length

לכל משתנה מטיפוס string יש תכונה בשם Length שמחזירה את אורך המחרוזת.

לדוגמא, קטע הקוד הבא מגדיר מחרוזת עם המילה "Hello World" ומדפיס את אורך המחרוזת, 11:

string myString = "Hello World";
Console.WriteLine(myString.Length);

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

ניתן להתייחס למחרוזת כאילו היא הייתה מערך של תווים (char), כלומר נוכל לבקש מהמחרוזת להחזיר לנו אות שנמצאת בתא מסוים.

לדוגמא, קטע הקוד הבא מגדיר מחרוזת ומדפיס את האות הראשונה והאחרונה:

string myString = "Hello World";
char firstChar = myString[0];
char lastChar = myString[myString.Length - 1];
Console.WriteLine(firstChar); // prints H
Console.WriteLine(lastChar); 
// prints d

שימו לב שכדי לגשת לתא האחרון במחרוזת משתמשים ב Length – 1, שכן מספור התאים מתחיל ב 0.

הפונקציות ToLower ו ToUpper

זוג הפונקציות ToLower ו ToUpper מאפשרות לנו לבצע פעולה נפוצה במחרוזת שהיא שינוי מאותיות קטנות לאותיות גדולות.

לדוגמא, אם נפעיל את הפונקציה ToLower על המחרוזת "Hello World" נקבל "hello world",

בנוסף, אם נפעיל את הפונקציה ToUpper על המחרוזת "Hello World" נקבל "HELLO WORLD".

קטע הקוד הבא מדגים זאת:

string myString = "Hello World";
Console.WriteLine(myString.ToLower());
Console.WriteLine(myString.ToUpper());

להלן תוצאת הריצה של תוכנית זו:

C# מחרוזות


הפונקציות TrimStart, TrimEnd, Trim

הרבה פעמים קורה במחשבים שמחרוזת נקלטת עם רווחים עודפים מימין או משמאל.

הפונקציה TrimStart מוחקת את כל הרווחים שיש בתחילת המילה, ואילו הפונקציה TrimEnd מוחקת את הרווחים שמופיעים בסוף המילה.

הפונקציה Trim מבצעת את שתי הפעולות גם יחד.

לדוגמא, נריץ את קטע הקוד הבא על המחרוזת " Hello World ":

Console.BackgroundColor = ConsoleColor.Blue;
string myString = "   Hello World   ";
Console.WriteLine(myString.TrimStart());
Console.WriteLine(myString.TrimEnd());
Console.WriteLine(myString.Trim());

ונקבל את התוצאה:

C# מחרוזות

הערה: שיניתי את צע הרקע לכחול כדי שניתן יהיה לראות את הרווחים של המחרוזת.

הפונקציות StartWith, EndWith

הפונקציה StartWith מאפשר לבדוק האם המחרוזת שלנו מתחילה במחרוזת אחרת.

לדוגמא, הרצת הפונקציה StartWith על המחרוזת "Hello World" עם הפרמטר "Hello" תחזיר true מאחר והמחרוזת "Hello World" מתחילה במילה "Hello".

באופן דומה, הפונקציה EndWith בודקת האם המחרוזת שלנו מסתיימת במחרוזת מסויימת.

להלן דוגמה של איך ניתן לעבוד עם שתי הפונקציות הללו:

string myString = Console.ReadLine();
if (myString.StartsWith("Hello"
))
{
   
Console.WriteLine("Hello is at the start of the input"
);
}

if (myString.EndsWith("Hello"
))
{
   
Console.WriteLine("Hello is at the end of the input");
}

 

הפונקציה Replace

הפונקציה Replace מאפשרת לנו לבצע החלפה של כל המופעים של מחרוזת א' במחרוזת ב' בתוך המחרוזת שלנו.

לדוגמא, נניח שיש לנו מחרוזת את המחרוזת "Good morning, what a beautiful morning!", ונרצה להחליף את המילה "morning" במילה "night".

נכתוב תוכנית שעושה זאת:

string before = "Good morning, what a beautiful morning!";
string after = before.Replace("morning", "night"
);

Console.WriteLine(before);
Console.WriteLine(after);

והתוצאה:

C# מחרוזות


פונקציות נוספות

הפונקציה IndexOf מחפשת מחרוזת א' בתוך מחרוזת ב' ומחזירה את המיקום שלה.

הפונקציה Substring מאפשרת להעתיק חלק ממחרוזת לתוך מחרוזת אחרת.

הפונקציה CompareTo מאפשרת להשוות בין שתי מחרוזות לפי סדר ההופעה שלהם במילון.

למחלקה string פונקציות עזר נוספות ומומלץ לבחון אותן בעצמכם.

תגיות: , , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק