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 returns7
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 returns7
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 index7
.
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 ourif
statement prints"Substring not found."
.
Summary
The IndexOf
method is a helpful way to locate characters or substrings within a string:
- Use
IndexOf(char)
orIndexOf(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…