在 C# 中查找字符串中的子字符串

Muhammad Maisam Abbas 2023年10月12日
在 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() 函数,以返回文本。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

相关文章 - Csharp String