באמצעות String formatting אנחנו יכולים לבנות ב- C# מחרוזות מורכבות אשר מכילות גם ערכים של משתנים.

לצורך הדוגמה, בואו נגיד שהגדרנו את המשתנים הבאים:

string catName = "Arie";
string catColor = "ornage";
double catWeight = 3.5768925;

אשר מחזיקים של של חתול, צבעו ומשקלו.

אפשר לבנות מחרוזת ארוכה אשר מכילה את כל נתוני החתול

שרשור רגיל

ב- C# ניתן לשרשר מחרוזות על ידי סימן החיבור. כל משתנה שאינו מחרוזת יומר באופן אוטומטי למחרוזת כך שאפשר יהיה לשרשר הכל. דוגמה:

string allData = "The cat's name is " + catName + ", its color is " + catColor
        + " and it weighs " + catWeight + " Kg.";

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

 

שימוש ב- string.Format

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

string allData = string.Format("The cat's name is {0}, its color is {1} and it weighs {2} Kg.",
    catName, catColor, catWeight);

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

 

שימוש במחרוזת עם דולר

ב- C# מודרני, ניתן גם לבנות מחרוזות על ידי שימוש בסימן $. זה מאוד דומה לשימוש בפונקציה string.format אך זוהי תכונה מובנית במחרוזות ולא דורשת שימוש בפונקציה כלשהי. דוגמה:

string allData = $"The cat's name is {catName}, its color is {catColor} and it weighs {catWeight} Kg.";

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

 

הגבלת מספר הספרות העשרוניות בתצוגה של מספר:

double anotherNumber = 16.375;
Console.WriteLine($"{anotherNumber:f2}");

תצוגה מדעית של מספר:

double anotherNumber = 1685632.375;
Console.WriteLine($"{anotherNumber:f2}");

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

כלומר המספר 1685632.375 יוצג בתצוגה מדעית כ- 1.68563E6, כלומר כדי לחזור לתצוגה רגילה יש להזיז את הנקודה העשרונית 6 פעמים ימינה.

תצוגת מספר עם פסיקים:

double anotherNumber = 1685632.375;
Console.WriteLine($"{anotherNumber:n}");

תצוגה זו מוסיפה פסיקים כל שלוש ספרות, כלומר המספר 1685632.375 יוצג 1,685,632.375.

תצוגת מספר כאחוז:

double anotherNumber = 1.68;
Console.WriteLine($"{anotherNumber:p}");

תצוגה זו תציג את המספר כאחוזים. המספר 1.68 יוצג כ- 168%.