在 C# 中查找字符串中的子字符串
本教程将讨论在 C# 中提取字符串中两个单词之间的文本的方法。
从 C# 中的字符串中提取文本
如果我们有一个字符串变量,其值类似于嗨,我是字符串变量
,而我们想在单词嗨
和字符串
之间找到文本,则可以使用 String.IndexOf()
方法以及实现该目标的 String.SubString()
方法。
String.IndexOf(x)
方法获取字符串内部特定字符串 x
的索引。String.SubString(x, y)
方法根据开始索引 x
和结束索引 y
提取子字符串。我们可以使用 String.IndexOf()
函数获得主字符串中开始和结束字符串的索引。然后,我们可以通过将两个单词的索引传递给 String.SubString()
函数来提取两个字符串之间的文本。以下代码示例向我们展示了如何使用 C# 中的 String.IndexOf()
和 String.SubString()
方法从字符串中提取文本。
using System;
namespace text_from_string
{
class Program
{
public static string stringBetween(string Source, string Start, string End)
{
string result = "";
if (Source.Contains(Start) && Source.Contains(End))
{
int StartIndex = Source.IndexOf(Start, 0) + Start.Length;
int EndIndex = Source.IndexOf(End, StartIndex);
result = Source.Substring(StartIndex, EndIndex - StartIndex);
return result;
}
return result;
}
static void Main(string[] args)
{
string s = "Hi, I am a string variable.";
string word1 = "Hi";
string word2 = "string";
string text = stringBetween(s, word1, word2);
Console.WriteLine(text);
}
}
}
输出:
, I am a
在上面的代码中,我们定义了函数 stringBetween()
,该函数将主字符串和两个单词都作为参数,并返回主字符串中单词之间的文本。我们使用 Source.IndexOf(Start, 0) + Start.Length
语句初始化了文本的起始索引 StartIndex
。该语句获取 Source
字符串内 Start
字符串的索引,然后以 Start
字符串的长度递增该索引,以使 Start
不会出现在文本结果中。对文本的结束索引 EndIndex
执行相同的过程。然后,我们将 StartIndex
作为起始索引,将 EndIndex-StartIndex
作为新字符串的长度提供给 String.SubString()
函数,以返回文本。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn