Csharp String
In C#, you can use a character array to represent a string, but the more common practice is to use the **string** keyword to declare a string variable. The `string` keyword is an alias for the **System.String** class.
You can create a string object using one of the following methods:
* By assigning a string literal to a String variable
* By using the String class constructor
* By using the string concatenation operator (`+`)
* By retrieving a property or calling a method that returns a string
* By using the format method to convert a value or object to its string representation
The following example demonstrates this:
## Example
```csharp
using System;
namespace StringApplication
{
class Program
{
static void Main(string[] args)
{
//string, string concatenation
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//by using string constructor
char[] letters = { 'H', 'e', 'l', 'l', 'o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
//methods returning string
string[] sarray = { "Hello", "From", "Tutorials", "Point" };
string message = String.Join(" ", sarray);
Console.WriteLine("Message: {0}", message);
//formatting methods for converting value
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format("Message sent at {0:t} on {0:D}",
waiting);
Console.WriteLine("Message: {0}", chat);
Console.ReadKey();
}
}
}
When the above code is compiled and executed, it produces the following result:
Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 17:58 on Wednesday, 10 October 2012
The String class has the following two properties:
| No. | Property Name & Description |
| --- | --- |
| 1 | **Chars** Gets the Char object at a specified position in the current String object. |
| 2 | **Length** Gets the number of characters in the current String object. |
The String class has many methods for string object manipulation. The following table provides some of the most commonly used methods:
| No. | Method Name & Description |
| --- | --- |
| 1 | **public static int Compare(string strA, string strB)** Compares two specified String objects and returns an integer that indicates their relative position in the sort order. This method is case-sensitive. |
| 2 | **public static int Compare(string strA, string strB, bool ignoreCase)** Compares two specified String objects and returns an integer that indicates their relative position in the sort order. However, if the boolean parameter is true, this method ignores case. |
| 3 | **public static string Concat(string str0, string str1)** Concatenates two String objects. |
| 4 | **public static string Concat(string str0, string str1, string str2)** Concatenates three String objects. |
| 5 | **public static string Concat(string str0, string str1, string str2, string str3)** Concatenates four String objects. |
| 6 | **public bool Contains(string value)** Returns a value indicating whether a specified String object occurs within this string. |
| 7 | **public static string Copy(string str)** Creates a new String object with the same value as a specified String. |
| 8 | **public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)** Copies a specified number of characters from a specified index of the String object to a specified index of an array of Unicode characters. |
| 9 | **public bool EndsWith(string value)** Determines whether the end of the String object matches the specified string. |
| 10 | **public bool Equals(string value)** Determines whether the current String object and a specified String object have the same value. |
| 11 | **public static bool Equals(string a, string b)** Determines whether two specified String objects have the same value. |
| 12 | **public static string Format(string format, Object arg0)** Converts the value of one or more specified objects to their string representation, and then inserts that representation into another string. |
| 13 | **public int IndexOf(char value)** Returns the index of the first occurrence of the specified Unicode character in the current string. The search starts at the first character position. |
| 14 | **public int IndexOf(string value)** Returns the index of the first occurrence of a specified string in the current instance. The search starts at the first character position. |
| 15 | **public int IndexOf(char value, int startIndex)** Returns the index of the first occurrence of the specified Unicode character in the current string. The search starts at a specified character position. |
| 16 | **public int IndexOf(string value, int startIndex)** Returns the index of the first occurrence of a specified string in the current instance. The search starts at a specified character position. |
| 17 | **public int IndexOfAny(char[] anyOf)** Returns the index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at the first character position. |
| 18 | **public int IndexOfAny(char[] anyOf, int startIndex)** Returns the index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at a specified character position. |
| 19 | **public string Insert(int startIndex, string value)** Returns a new string in which a specified string is inserted at a specified index position in the current String object. |
| 20 | **public static bool IsNullOrEmpty(string value)** Indicates whether the specified string is null or an empty string (""). |
| 21 | **public static string Join(string separator, string[] value)** Concatenates all the elements of a string array, using the specified separator between each element. |
| 22 | **public static string Join(string separator, string[] value, int startIndex, int count)** Concatenates a specified number of elements of a string array, using the specified separator between each element. |
| 23 | **public int LastIndexOf(char value)** Returns the index position of the last occurrence of the specified Unicode character in the current String object. The search starts at the last character position. |
| 24 | **public int LastIndexOf(string value)** Returns the index position of the last occurrence of a specified string in the current String object. The search starts at the last character position. |
| 25 | **public string Remove(int startIndex)** Deletes all the characters from the current String instance beginning at a specified position and continuing to the end of the string, and returns the string. |
| 26 | **public string Remove(int startIndex, int count)** Deletes a specified number of characters from the current String instance beginning at a specified position, and returns the string. |
| 27 | **public string Replace(char oldChar, char newChar)** Replaces all occurrences of a specified Unicode character in the current String object with another specified Unicode character, and returns the new string. |
| 28 | **public string Replace(string oldValue, string newValue)** Replaces all occurrences of a specified string in the current String object with another specified string, and returns the new string. |
| 29 | **public string[] Split(params char[] separator)** Returns a string array that contains the substrings in this instance that are delimited by elements of a specified Unicode character array. |
| 30 | **public string[] Split(char[] separator, int count)** Returns a string array that contains the substrings in this instance that are delimited by elements of a specified Unicode character array. A parameter specifies the maximum number of substrings to return. |
| 31 | **public bool StartsWith(string value)** Determines whether the beginning of the String instance matches the specified string. |
| 32 | **public char[] ToCharArray()** Returns an array of Unicode characters equal to the characters in this instance. |
| 33 | **public char[] ToCharArray(int startIndex, int length)** Returns an array of Unicode characters equal to a specified number of characters in this instance, starting at a specified index. |
| 34 | **public string ToLower()** Returns a copy of this String object converted to lowercase. |
| 35 | **public string ToUpper()** Returns a copy of this String object converted to uppercase. |
| 36 | **public string Trim()** Removes all leading and trailing white-space characters from the current String object. |
The above list of methods is not exhaustive. Please visit the MSDN library for a complete list of methods and String class constructors.
The following example demonstrates some of the methods mentioned above:
**Comparing Strings**
## Example
```csharp
using System;
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string str1 = "This is test";
string str2 = "This is text";
if (String.Compare(str1, str2) == 0)
{
Console.WriteLine(str1 + " and " + str2 + " are equal.");
}
else
{
Console.WriteLine(str1 + " and " + str2 + " are not equal.");
}
Console.ReadKey();
}
}
}
When the above code is compiled and executed, it produces the following result:
This is test and This is text are not equal.
**String Contains String:**
## Example
```csharp
using System;
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string str = "This is test";
if (str.Contains("test"))
{
Console.WriteLine("The sequence 'test' was found.");
}
Console.ReadKey();
}
}
}
When the above code is compiled and executed, it produces the following result:
The sequence 'test' was found.
**Getting Substrings:**
## Example
```csharp
using System;
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string str = "Last night I dreamt of San Pedro";
Console.WriteLine(str);
string substr = str.Substring(23);
Console.WriteLine(substr);
Console.ReadKey();
}
}
}
[Run Example Β»](#)
When the above code is compiled and executed, it produces the following result:
Last night I dreamt of San Pedro
San Pedro
**Joining Strings:**
## Example
```csharp
using System;
namespace StringApplication
{
class StringProg
{
static void Main(string[] args)
{
string[] starray = new string[] { "Down the way nights are dark",
"And the sun shines daily on the mountain top",
"I took a trip on a sailing ship",
"And when I reached Jamaica",
"I made a stop" };
string str = String.Join("n", starray);
Console.WriteLine(str);
Console.ReadKey();
}
}
}
When the above code is compiled and executed, it produces the following result:
Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop
YouTip