String Handling In C# Complete Guide

 Last Update:2025-06-23T00:00:00     .NET School AI Teacher - SELECT ANY TEXT TO EXPLANATION.    8 mins read      Difficulty-Level: beginner

Understanding the Core Concepts of String Handling in C#

String Handling in C#

Key Classes and Features

1. System.String

  • Immutability: Strings in C# are immutable, meaning that once a string is created, it cannot be modified. Any operation that manipulates a string actually creates a new string.
  • Literal Strings: Strings can be defined as literals between double quotes (e.g., "Hello, World!").
  • String Interpolation: C# supports string interpolation, allowing embedded expressions within string literals (e.g., $"Hello, {name}!").
  • String Concatenation and Combination: Strings can be concatenated using the + operator or the StringBuilder class for more efficient operations.
string name = "Alice";
string greet = $"Hello, {name}!";

2. System.Text.StringBuilder

  • Mutable Strings: Unlike System.String, StringBuilder is mutable. It is ideal for scenarios involving repeated string modifications.
  • Efficiency: StringBuilder minimizes the overhead of creating and destroying multiple string objects, making it more efficient for large volumes of text manipulation.
StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(", ");
sb.Append("World!");
string result = sb.ToString();  // "Hello, World!"

Important Methods and Operations

1. Length:

  • Provides the number of characters in a string.
string text = "Hello, World!";
int length = text.Length;  // 13

2. Trim, TrimStart, TrimEnd:

  • These methods are used to remove whitespace characters from the beginning, end, or both of a string.
string paddedText = "   Hello, World!   ";
string trimmedText = paddedText.Trim();  // "Hello, World!"
string trimmedStart = paddedText.TrimStart();  // "Hello, World!   "
string trimmedEnd = paddedText.TrimEnd();  // "   Hello, World!"

3. Equals, CompareTo:

  • Equals checks for equality between two strings.
  • CompareTo compares two strings lexicographically and returns an integer indicating the relationship.
string str1 = "apple";
string str2 = "banana";
bool isEqual = str1.Equals(str2);  // false
int comparisonResult = str1.CompareTo(str2);  // negative value

4. Substring, IndexOf, LastIndexOf:

  • These methods facilitate extracting parts of a string and finding the position of specified substrings.
string text = "Hello, World!";
string part = text.Substring(7);  // "World!"
int indexStart = text.IndexOf('W');  // 7
int lastIndexEnd = text.LastIndexOf('o');  // 8

5. Split, Join:

  • Split divides a string into substrings based on specified delimiters.
  • Join combines an array of substrings into a single string using a specified separator.
string sentence = "One,Two,Three";
string[] words = sentence.Split(',');  // ["One", "Two", "Three"]
string combined = string.Join(" ", words);  // "One Two Three"

6. Replace, Remove:

  • Replace substitutes occurrences of a specified substring with another substring.
  • Remove deletes a specified number of characters starting from a given index.
string text = "Hello, World!";
string modified = text.Replace("World", "Universe");  // "Hello, Universe!"
string shortened = text.Remove(5);  // "Hello"

7. StartsWith, EndsWith:

  • These methods determine whether a string starts or ends with a specified prefix or suffix.
string text = "Hello, World!";
bool startsWithHello = text.StartsWith("Hello");  // true
bool endsWithWorld = text.EndsWith("World!");  // true

8. ToUpper, ToLower, ToCharArray:

  • ToUpper and ToLower convert the characters in a string to uppercase or lowercase, respectively.
  • ToCharArray converts the string into an array of characters.
string text = "Hello, World!";
string upper = text.ToUpper();  // "HELLO, WORLD!"
string lower = text.ToLower();  // "hello, world!"
char[] chars = text.ToCharArray();

Best Practices

1. Prefer StringBuilder for Large Modifications:

  • Use StringBuilder when you need to perform multiple modifications on a string to avoid the overhead of creating many intermediate string objects.

2. Use String Interpolation for Readability:

  • String interpolation enhances code readability by embedding expressions directly within string literals using $.

3. Avoid Unnecessary String Copies:

  • Take advantage of string methods that return new string instances only when necessary.

4. Use Ordinal Comparisons for Performance:

  • When comparing strings, especially in non-localized environments, prefer ordinal comparisons over culture-sensitive comparisons to improve performance.

5. Validate and Sanitize Input Strings:

  • Always validate user inputs to prevent security vulnerabilities such as injection attacks.

Conclusion

Mastering string handling in C# involves understanding the System.String and System.Text.StringBuilder classes, learning various methods and operations for manipulating and comparing strings, and adhering to best practices to ensure efficient and secure code. By leveraging the rich set of string handling capabilities provided by C#, developers can effectively manage text in their applications, enhancing functionality and user experience.


Online Code run

🔔 Note: Select your programming language to check or run code at

💻 Run Code Compiler

Step-by-Step Guide: How to Implement String Handling in C#

1. Creating Strings

Strings can be created using string literals or the new keyword.

Example 1.1: Creating Strings

using System;

class Program
{
    static void Main()
    {
        // Using string literal
        string name1 = "Alice";

        // Using new keyword
        string name2 = new string('B', 5);

        Console.WriteLine("Name 1: " + name1);
        Console.WriteLine("Name 2: " + name2);
    }
}

Output:

Name 1: Alice
Name 2: BBBBB

2. String Length

The Length property returns the number of characters in a string.

Example 2.1: Finding the Length of a String

using System;

class Program
{
    static void Main()
    {
        string greeting = "Hello, World!";
        int length = greeting.Length;

        Console.WriteLine("The length of the string is: " + length);
    }
}

Output:

The length of the string is: 13

3. Accessing Characters

You can access individual characters in a string using the index operator.

Example 3.1: Accessing Characters

using System;

class Program
{
    static void Main()
    {
        string message = "Hello";

        // Accessing individual characters
        char firstLetter = message[0];
        char lastLetter = message[message.Length - 1];

        Console.WriteLine("First letter: " + firstLetter);
        Console.WriteLine("Last letter: " + lastLetter);
    }
}

Output:

First letter: H
Last letter: o

4. Modifying Strings

In C#, strings are immutable. However, you can create a new string by modifying the original string.

Example 4.1: Modifying Strings

using System;

class Program
{
    static void Main()
    {
        string original = "Hello";
        string modified = original.ToUpper() + " World!";

        Console.WriteLine("Original: " + original);
        Console.WriteLine("Modified: " + modified);
    }
}

Output:

Original: Hello
Modified: HELLO World!

5. String Concatenation

You can concatenate strings using the + operator or the Concat method.

Example 5.1: Concatenating Strings

using System;

class Program
{
    static void Main()
    {
        string str1 = "Hello";
        string str2 = "World";
        
        // Using + operator
        string result1 = str1 + ", " + str2 + "!";
        
        // Using Concat method
        string result2 = string.Concat(str1, ", ", str2, "!");
        
        Console.WriteLine("Result using + : " + result1);
        Console.WriteLine("Result using Concat: " + result2);
    }
}

Output:

Result using + : Hello, World!
Result using Concat: Hello, World!

6. String Comparison

You can compare strings using == operator or Equals() method.

Example 6.1: Comparing Strings

using System;

class Program
{
    static void Main()
    {
        string str1 = "Apple";
        string str2 = "apple";

        // Using == operator (case-sensitive)
        bool isEqual1 = str1 == str2;

        // Using Equals() method (case-sensitive)
        bool isEqual2 = str1.Equals(str2);

        // Using Equals() with StringComparison.OrdinalIgnoreCase
        bool isEqual3 = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);

        Console.WriteLine("Using == : " + isEqual1);
        Console.WriteLine("Using Equals() : " + isEqual2);
        Console.WriteLine("Using Equals() with OrdinalIgnoreCase : " + isEqual3);
    }
}

Output:

Using == : False
Using Equals() : False
Using Equals() with OrdinalIgnoreCase : True

7. Searching in Strings

You can use methods like Contains, IndexOf, and LastIndexOf to search for substrings.

Example 7.1: Searching in Strings

using System;

class Program
{
    static void Main()
    {
        string sentence = "The quick brown fox jumps over the lazy dog";

        // Using Contains
        bool containsWord = sentence.Contains("fox");

        // Using IndexOf
        int indexFirstOccurrence = sentence.IndexOf("fox");

        // Using LastIndexOf
        int indexLastOccurrence = sentence.LastIndexOf("the");

        Console.WriteLine("Contains 'fox' : " + containsWord);
        Console.WriteLine("Index of first occurrence of 'fox' : " + indexFirstOccurrence);
        Console.WriteLine("Index of last occurrence of 'the' : " + indexLastOccurrence);
    }
}

Output:

Contains 'fox' : True
Index of first occurrence of 'fox' : 16
Index of last occurrence of 'the' : 40

8. Replacing Substrings

You can replace substrings using the Replace method.

Example 8.1: Replacing Substrings

using System;

class Program
{
    static void Main()
    {
        string sentence = "The quick brown fox jumps over the lazy dog";

        // Replacing 'fox' with 'cat'
        string modifiedSentence = sentence.Replace("fox", "cat");

        Console.WriteLine("Original: " + sentence);
        Console.WriteLine("Modified: " + modifiedSentence);
    }
}

Output:

Original: The quick brown fox jumps over the lazy dog
Modified: The quick brown cat jumps over the lazy dog

9. Splitting Strings

You can split a string into an array of substrings using the Split method.

Example 9.1: Splitting Strings

using System;

class Program
{
    static void Main()
    {
        string sentence = "The quick brown fox jumps over the lazy dog";

        // Splitting by spaces
        string[] words = sentence.Split(' ');

        Console.WriteLine("Words in the sentence:");
        foreach (string word in words)
        {
            Console.WriteLine(word);
        }
    }
}

Output:

Top 10 Interview Questions & Answers on String Handling in C#

Top 10 Questions and Answers on String Handling in C#

1. What is a string in C#?

Example:

string greeting = "Hello, world!";

2. How can you concatenate two strings in C#?

In C#, you can concatenate strings using the + operator or the Concat method from the System.String class.

Example:

string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName; // Using + operator

// Using System.String.Concat
string fullNameConcat = String.Concat(firstName, " ", lastName);

3. How do you split a string into an array of substrings based on a delimiter?

You can split a string into an array of substrings by using the Split method of the System.String class.

Example:

string sentence = "Hello, world! This is C#.";
string[] words = sentence.Split(new char[] { ' ', ',', '!' }, StringSplitOptions.RemoveEmptyEntries);
// words will contain ["Hello", "world", "This", "is", "C#"]

4. How can you replace a substring with another substring in a string?

The Replace method of the System.String class is used to replace all occurrences of a specified substring with another.

Example:

string original = "I like apples.";
string modified = original.Replace("apples", "oranges");
// modified will be "I like oranges."

5. How do you check if a string starts with or ends with a particular substring?

You can use the StartsWith and EndsWith methods of the System.String class to check the start and end of a string.

Example:

string text = "Hello, world!";
bool startsWithHello = text.StartsWith("Hello");
bool endsWithWorld = text.EndsWith("world!");

// startsWithHello is true
// endsWithWorld is true

6. How can you find the index position of a substring in a string?

The IndexOf method searches the string and returns the zero-based index position of the first occurrence of the specified substring.

Example:

string sample = "Learn C# on edX.";
int index = sample.IndexOf("C#");
// index will be 6

7. How do you convert a string to uppercase or lowercase in C#?

The ToUpper and ToLower methods convert the string to uppercase and lowercase, respectively.

Example:

string str = "CSharp Programming";
string upperStr = str.ToUpper();
string lowerStr = str.ToLower();
// upperStr will be "CSHARP PROGRAMMING"
// lowerStr will be "csharp programming"

8. How do you trim leading and trailing whitespace from a string?

The Trim method removes any leading and trailing whitespace from a string.

Example:

string withSpaces = "   Hello, world!   ";
string trimmedStr = withSpaces.Trim();
// trimmedStr will be "Hello, world!"

9. How can you compare two strings for value equality in C#?

You can compare strings for value equality using the == operator or the Equals method.

Example:

string a = "apple";
string b = "apple";
bool isEqual = a == b;
bool isAlsoEqual = a.Equals(b);
// isEqual and isAlsoEqual are both true

10. How do you format strings in C#?

String formatting in C# can be done using string interpolation (C# 6+), String.Format, or StringBuilder.

Examples:

  1. String Interpolation:

You May Like This Related .NET Topic

Login to post a comment.