Introduction
In any programming language, to represent a
value, we need a data type. The Char data type represents a character in .NET.
In .NET, the text is stored as a sequential read-only collection of Char
objects. There is no null-terminating character at the end of a C# string;
therefore a C# string can contain any number of embedded null characters ('\0').
Author Note: I've written a 20 page e-book on just strings with various methods. It was difficult to publish all 20 pages as an article.
Download Free E-book for the full C# Strings article
The System.String data type is used to represent a string. A string in C# is an
object of type System.String.
The string class in C# represents a string.
The following code creates three strings with a name, number and double values.
// String of characters
System.String authorName =
"Mahesh Chand";
//
String made of an Integer
System.String age =
"33";
// String made of a double
System.String numberString =
"33.23";
Here is the complete example that shows how to use stings in C# and .NET.
using
System;
namespace
CSharpStrings
{
class
Program
{
static void Main(string[]
args)
{
// Define .NET
Strings
// String of characters
System.String
authorName = "Mahesh Chand";
// String made of an
Integer
System.String
age = "33";
// String made of a
double
System.String
numberString = "33.23";
// Write to Console.
Console.WriteLine("Name:
{0}", authorName);
Console.WriteLine("Age:
{0}", age);
Console.WriteLine("Number:
{0}", numberString);
Console.ReadKey();
}
}
}
String Class
The string class defined in the .NET base class library represents text as a
series of Unicode characters. The string class provides methods and properties
to work with strings.
The string class has methods to clone a string, compare strings, concatenate
strings, and copy strings. This class also provides methods to find a substring
in a string, find the index of a character or substring, replace characters,
spilt a string, trim a string, and add padding to a string. The string class
also provides methods to convert a string characters to uppercase or lowercase.
Check out these links to learn about a specific operation or functionality of
strings.
What is different between string and System.String?
.NET defines all data types as a class. The System.String class represents a
collection of Unicode characters also known as a text. The System.String class
also defines the properties and methods to work with string data types.
Download Free E-book for the full C# Strings article
The string class is equivalent to the System.String in C# language. The string
class also inherits all the properties and methods of the System.String class.
Create a string
There are several ways to construct strings in C# and .NET. - Create a string using a constructor
- Create a string from a literal
- Create a string using concatenation
- Create a string using a property or a method
- Create a string using formatting
Create a string using its constructor
The String class has several overloaded constructors that take an array of
characters or bytes. The following code snippet creates a string from an array
of characters.
char[]
chars = { 'M',
'a', 'h',
'e', 's',
'h' };
string
name = new string(chars);
Console.WriteLine(name);
Create a string from a literal
This is the most common ways to instantiate a string.
You simply define a string type variable and assign a text value to the variable
by placing the text value without double quotes. You can put almost any type of
characters within double quotes accept some special character limitations.
The following code snippet defines a string variable named firstName and then
assigns text value Mahesh to it.
string
firstName;
firstName = "Mahesh";
Alternatively, we can assign the text value direct to the variable.
string
firstName = "Mahesh";
Here is a complete sample example of how to create strings using literals.
using
System;
namespace
CSharpStrings
{
class
Program
{
static void Main(string[]
args)
{
string firstName =
"Mahesh";
string lastName =
"Chand";
string age =
"33";
string numberString =
"33.23";
Console.WriteLine("First
Name: {0}", firstName);
Console.WriteLine("Last
Name: {0}", lastName);
Console.WriteLine("Age:
{0}", age);
Console.WriteLine("Number:
{0}", numberString);
Console.ReadKey();
}
}
}
Create a string using concatenation
Sting concatenation operator (+) can be used to combine more than one string to
create a single string. The following code snippet creates two strings. The
first string adds a text Date and current date value from the DateTime object.
The second string adds three strings and some hard coded text to create a larger
string.
string
nowDateTime = "Date: " +
DateTime.Now.ToString("D");
string
firstName = "Mahesh";
string
lastName = "Chand";
string
age = "33";
string
authorDetails = firstName + " " + lastName +
" is " + age + "
years old.";
Console.WriteLine(nowDateTime);
Console.WriteLine(authorDetails);
Create a string using a property or a method
Some properties and methods of the String class returns a string object such as
SubString method. The following code snippet takes one sentence string and finds
the age within that string. The code returns 33.
string
authorInfo = "Mahesh Chand is 33 years old.";
int
startPosition = sentence.IndexOf("is ") + 1;
string
age = authorInfo.Substring(startPosition +2, 2 );
Console.WriteLine("Age:
" + age);
Create a string using a formatting
The String.Format method returns a string. The following code snippet creates a
new string using the Format method.
string
name = "Mahesh Chand";
int
age = 33;
string
authorInfo = string.Format("{0}
is {1} years old.", name, age.ToString());
Console.WriteLine(authorInfo);
Create a string using ToString Method
The ToString method returns a string. We can apply ToString on pretty much any
data type that can be converted to a string. The following code snippet converts
an int data type to a string.
string
name = "Mahesh Chand";
int
age = 33;
string
authorInfo = string.Format("{0}
is {1} years old.", name, age.ToString());
Console.WriteLine(authorInfo);
Get all characters of a string using C#
A string is a collection of characters.
The following code snippet reads all characters of a string and displays on the
console.
string
nameString = "Mahesh Chand";
for
(int counter = 0; counter <= nameString.Length -
1; counter++)
Console.WriteLine(nameString[counter]);
Size of string
The Length property of the string class returns the number of characters in a
string including white spaces.
The following code snippet returns the size of a string and displays on the
console.
string
nameString = "Mahesh Chand";
Console.WriteLine(nameString);
Console.WriteLine("Size
of string {0}", nameString.Length);
Number of characters in a string
We can use the string.Length property to get the number of characters of a
string but it will also count an empty character. So, to find out exact number
of characters in a string, we need to remove the empty character occurrences
from a string.
The following code snippet uses the Replace method to remove empty characters
and then displays the non-empty characters of a string.
string name = "Mahesh Chand";
string
name = "Mahesh Chand";
// Get size of string
Console.WriteLine("Size
of string: {0}", name.Length );
// Remove all empty characters
string
nameWithoutEmptyChar = name.Replace(" ",
"");
// Size after empty characters are removed
Console.WriteLine("Size
of non empty char string: {0}", nameWithoutEmptyChar.Length);
// Read and print all characters
for
(int counter = 0; counter <=
nameWithoutEmptyChar.Length - 1; counter++)
Console.WriteLine(nameWithoutEmptyChar[counter]);
Convert String to Char Array
ToCharArray method converts a string to an array of Unicode characters. The
following code snippet converts a string to char array and displays them.
string
sentence = "Mahesh Chand is an author and founder of
C# Corner";
char[]
charArr = sentence.ToCharArray();
foreach
(char ch in
charArr)
{
Console.WriteLine(ch);
}
ole.WriteLine(ch);
}
Empty String
An empty string is a valid instance of a System.String object that contains zero
characters. There are two ways to create an empty string. We can either use the
string.Empty property or we can simply assign a text value with no text in it.
The following code snippet creates two empty strings.
string
empStr = string.Empty;
string
empStr2 = "";
Both of the statements above generates the same output.
Console.WriteLine("Start"
+ empStr + "End");
Console.WriteLine("Start"
+ empStr2 + "End");
An empty string is sometimes used to compare the value of other strings. The
following code snippet uses an empty string to compare with the name string.
string
name = "Mahesh Chand";
if
(name != empStr)
{
Console.WriteLine(name);
}
In real world coding, we will probably never create an empty string unless you
plan to use it somewhere else as a non-empty string. We can simply use the
string.Empty direct to compare a string with an empty string.
if
(name != string.Empty)
{
Console.WriteLine(name);
}
Here is a complete example of using an empty string.
string
empStr = string.Empty;
string
empStr2 = "";
string
name = "Mahesh Chand";
if
(name != empStr)
{
Console.WriteLine(name);
}
if
(name != string.Empty)
{
Console.WriteLine(name);
}
Null String
A null string is a string variable that has not been initialized yet and has a
null value. If you try to call any methods or properties of a null string, you
will get an exception. A null string valuable is exactly same as any other
variable defined in your code.
A null string is typically used in string concatenation and comparison
operations with other strings.
The following code example shows how to use a null string.
string
nullStr = null;
string
empStr = string.Empty;
string
name = "Mahesh Chand";
if
((name != nullStr) || (name != empStr))
{
Console.WriteLine(name +
" is neither null nor empty");
}
Continue reading this article: Download Free E-book for the full article
Summary
I've written a 20 page e-book on just strings with various methods. It was difficult to publish all 20 pages as an article.
Download Free E-book for the full C# Strings article