4 - String formatting ב- C#
באמצעות 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%.