Mastering the Art of String Formatting in C#
The Basics of String.Format()
The String.Format()
method is a powerful tool that allows you to create formatted strings with ease, making your code more readable and efficient. It takes two parameters: a format string and an object to format.
The format string contains placeholders, known as format items, which are replaced by the object’s values. The syntax is simple:
String.Format(format, args)
Example 1: A Simple Format String
Consider the following example:
string output = String.Format("There are {0} apples.", 5);
Console.WriteLine(output); // Output: "There are 5 apples."
In this example, {0}
is the format item, and the variable number
is inserted in its place.
Working with Multiple Format Items
If you need to format multiple values, you can use multiple format items:
string name = "John";
string food = "pizza";
string output = String.Format("My name is {0} and I love {1}.", name, food);
Console.WriteLine(output); // Output: "My name is John and I love pizza."
In this case, {0}
is replaced by the name
variable, and {1}
is replaced by the food
variable.
Controlling Spacing and Alignment
You can specify the width of the string and even align it left or right:
string programiz = "Programiz";
string rightAligned = programiz.PadRight(20);
string leftAligned = programiz.PadLeft(20);
Console.WriteLine(rightAligned); // Output: "Programiz "
Console.WriteLine(leftAligned); // Output: " Programiz"
Formatting Dates and Numbers
String.Format()
isn’t just limited to strings. You can also use it to format dates and numbers.
For dates, use format specifiers like {0:D}
for a long date format:
DateTime date = DateTime.Now;
string output = String.Format("Today's date is {0:D}", date);
Console.WriteLine(output); // Output: "Today's date is Friday, June 12, 2020"
For numbers, use {0:D}
for decimal, {0:X}
for hexadecimal, and more:
int number = 123;
string decimalOutput = String.Format("The decimal value is {0:D}", number);
string hexOutput = String.Format("The hexadecimal value is {0:X}", number);
Console.WriteLine(decimalOutput); // Output: "The decimal value is 123"
Console.WriteLine(hexOutput); // Output: "The hexadecimal value is 7B"
Common Format Specifiers
Here are some common format specifiers for dates and numbers:
- Date format specifiers:
D
: long dated
: short datet
: long timeT
: short time
- Number format specifiers:
D
: decimalX
: hexadecimalC
: currencyE
: exponential