📅  最后修改于: 2023-12-03 15:09:22.360000             🧑  作者: Mango
在C#中,在给定字符串中查找特定字符后的子字符串是一项常见的任务。使用C#的内置字符串函数,可以轻松地获得任何字符串中字符后的子字符串。
可以使用 Substring()
和 IndexOf()
函数来获取字符后的子字符串。
下面是一个示例程序,它使用 Substring()
和 IndexOf()
函数来获取字符串中从指定字符后的子字符串:
string str = "Hello world!";
char c = 'o';
int index = str.IndexOf(c);
if (index != -1)
{
string result = str.Substring(index + 1);
Console.WriteLine(result);
}
else
{
Console.WriteLine("未找到指定字符。");
}
输出结果:
world!
在上述示例中,我们首先使用 IndexOf()
函数找到给定字符的索引。然后,使用 Substring()
函数来获取从特定字符后的子字符串,它采用两个参数:开始索引和子字符串中字符的数量。
但是,在本例中,我们不知道子字符串的长度,因此我们只提供开始索引。在这里,我们添加一个来自给定字符索引的1来忽略给定字符。最后,将子字符串输出到控制台。
如果不关心字符大小写,可以使用 ToLower()
函数将字符串转换为小写并在 IndexOf()
函数中使用。
以下是忽略大小写的示例程序:
string str = "The quick brown fox jumps over the lazy dog.";
char c = 'O';
string baseStr = str.ToLower();
int index = baseStr.IndexOf(c.ToLower());
if (index != -1)
{
string result = str.Substring(index + 1);
Console.WriteLine(result);
}
else
{
Console.WriteLine("未找到指定字符。");
}
在这个例子中,请注意我们首先使用 ToLower()
函数将字符串转换为小写,接着使用 ToLower()
函数将字符转换为小写,并在 IndexOf()
函数中使用结果。结果与先前的示例相同。
如果有多个实例,则可以使用一个循环来获取字符后的每个子字符串。下面是一个示例程序,在字符串中查找所有实例并输出它们:
string str = "I love C# programming!";
char c = ' ';
int start = 0;
int index;
do
{
index = str.IndexOf(c, start);
if (index != -1)
{
string result = str.Substring(index + 1);
Console.WriteLine(result);
start = index + 1;
}
} while (index != -1);
在本例中,我们使用 do-while
循环来查找所有字符实例。我们使用 IndexOf()
函数来查找下一次出现字符的索引,如前面的示例所述。
但是,如果找到字符,则无需立即退出循环。我们需要输出具有特定字符后的子字符串。然后,我们将开始索引设置为上一个找到的索引 + 1,以查找下一个实例。
当索引为-1时,循环终止,这表示我们已经查找到给定字符的最后一次实例。
输出结果:
love
programming!
在本文中,我们了解了如何在C#中获取任何字符串中字符后的子字符串。使用 Substring()
和 IndexOf()
函数,可以获得给定字符后的子字符串。
此外,我们还了解了如何处理多个实例,并忽略给定字符的大小写。这是处理字符串中特定字符问题的几种常见方法。