📌  相关文章
📜  查找字符串中第一次出现的字符 - C# (1)

📅  最后修改于: 2023-12-03 15:26:37.628000             🧑  作者: Mango

查找字符串中第一次出现的字符 - C#

在C#中,查找字符串中第一次出现的字符是很常见的需求。下面我们将分享几种方法来实现这个功能。

方法1:使用IndexOf方法

C#中的字符串类提供了一个IndexOf方法,它可以用来在字符串中查找一个字符或一个字符串的位置。在这个例子中,我们可以使用IndexOf方法来查找字符串中第一个出现的字符。

下面是使用IndexOf方法来实现这个功能的代码片段:

string str = "Hello World!";
char searchChar = 'o';

int index = str.IndexOf(searchChar);

if (index >= 0)
{
    Console.WriteLine($"The first occurrence of {searchChar} is at position {index}");
}
else
{
    Console.WriteLine($"The character {searchChar} was not found.");
}

在上面的代码片段中,我们首先定义了一个字符串str和一个需要查找的字符searchChar。接着,我们使用IndexOf方法来查找searchCharstr中第一次出现的位置,并将它的值赋予index变量。

如果index的值大于等于0,则输出查找到的位置;否则输出未找到的字符。

方法2:使用LINQ方法

另一种实现这个功能的方法是使用LINQ方法中的FirstFirstOrDefault方法。下面是使用FirstOrDefault方法来实现这个功能的代码片段:

string str = "Hello World!";
char searchChar = 'o';

int index = str.Select((c, i) => new { Character = c, Index = i })
               .FirstOrDefault(x => x.Character == searchChar)
               ?.Index ?? -1;

if (index >= 0)
{
    Console.WriteLine($"The first occurrence of {searchChar} is at position {index}");
}
else
{
    Console.WriteLine($"The character {searchChar} was not found.");
}

在上面的代码片段中,我们使用Select方法来枚举字符串str中的每个字符,并将它们的位置和字符包装成一个匿名对象。接着,我们使用FirstOrDefault方法来查找包含指定字符的第一个元素,并返回它的位置。

注意:如果未找到指定字符,则FirstOrDefault方法将返回null,因此我们需要使用?.??运算符来对结果进行空值处理。

以上是使用C#中常用的两种方法来在字符串中查找第一个出现的字符的代码片段。根据实际情况选择不同的方法来实现这个功能。