The IndexOf method in C# is a powerful tool for locating the position of a character or substring within a string. It’s commonly used to check if a specific character or text appears in a string and to identify where it starts. In this post, we’ll walk through a basic example to help you understand how IndexOf works.

Syntax of IndexOf

The IndexOf method is straightforward to use and has several overloads, but here are two common ones:

int position = string.IndexOf(char);
int position = string.IndexOf(string);
  • char: A single character you want to search for.
  • string: A substring you want to search for.

If the character or substring is found, IndexOf returns the zero-based index position. If not found, it returns -1.

Example 1: Finding a Character in a String

Here’s a simple example where we search for a specific character in a string.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, world!";
        
        // Find the position of 'w'
        int index = text.IndexOf('w');
        
        Console.WriteLine(index);  // Output: 7
    }
}

Explanation:

  • The string "Hello, world!" contains the character 'w'.
  • We use IndexOf('w'), which returns 7 because 'w' is at index 7.

Example 2: Finding a Substring in a String

You can also use IndexOf to search for a substring. Let’s look for the word "world" in the text.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, world!";
        
        // Find the position of "world"
        int index = text.IndexOf("world");
        
        Console.WriteLine(index);  // Output: 7
    }
}

Explanation:

  • Here, we use IndexOf("world"), which returns 7 because the substring "world" starts at index 7.

Example 3: Case-Insensitive Search with IndexOf

IndexOf is case-sensitive by default. To do a case-insensitive search, you can specify a StringComparison parameter.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, World!";
        
        // Find the position of "world" with case-insensitive search
        int index = text.IndexOf("world", StringComparison.OrdinalIgnoreCase);
        
        Console.WriteLine(index);  // Output: 7
    }
}

Explanation:

  • We use IndexOf("world", StringComparison.OrdinalIgnoreCase) to search for "world" in a case-insensitive way.
  • The search finds "World" (capitalized) starting at index 7.

Example 4: Handling Character or Substring Not Found

If IndexOf does not find the character or substring, it returns -1. It’s essential to check for -1 to avoid errors.

using System;

class Program
{
    static void Main()
    {
        string text = "Hello, world!";
        
        // Try to find "planet"
        int index = text.IndexOf("planet");
        
        if (index == -1)
        {
            Console.WriteLine("Substring not found.");
        }
        else
        {
            Console.WriteLine($"Found at index {index}");
        }
    }
}

Explanation:

  • Since "planet" is not in "Hello, world!", IndexOf returns -1, so our if statement prints "Substring not found.".

Summary

The IndexOf method is a helpful way to locate characters or substrings within a string:

  • Use IndexOf(char) or IndexOf(string) for basic searches.
  • Add StringComparison.OrdinalIgnoreCase for case-insensitive searching.
  • Check for -1 to see if the character or substring isn’t present.

Using IndexOf allows you to work with strings more efficiently in C# applications. Try it out in your projects and see how easily you can find what you’re looking for in text!

Happy Coding…

Subscribe to Youtube Channel

Leave a Reply

Your email address will not be published. Required fields are marked *