获取行中某个单词后的数据

本文关键字:数据 单词 获取 | 更新日期: 2023-09-27 18:37:14

假设我的字符串 hello 等于 "EJFEWJFWEFOWEFOJWEOFWEF LINK http://google.com"

我想基本上得到"链接"之后的任何内容,在这种情况下是"http://google.com"。

请注意,"EJFEWJFWEFOWEFOJWEOFWEF"总是随机的,并且总是有一个随机的长度。

获取行中某个单词后的数据

一种草率的工作方式:

string a = "EJFEWJFWEFOWEFOJWEOFWEF LINK http://google.com";
string[] stuff = a.Split(' ');
Console.WriteLine(stuff[Array.IndexOf(stuff, "LINK") + 1]);

例。

您正在寻找的答案是这样的:

string link = hello.Substring(hello.IndexOf(" LINK ") + 6, hello.Length - hello.IndexOf(" LINK ") - 6);

我想分解一下,以便您真正理解它为什么有效。我将在这里用更简单的块重写它:

string hello = "EJFEWJFWEFOWEFOJWEOFWEF LINK http://google.com";
int ndx = hello.IndexOf(" LINK "); // Returns the position of the string " LINK "
string link = hello.Substring(ndx +6, hello.Length - ndx - 6); // Extracts everything after " LINK "

IndexOf 方法搜索字符串中的字符串,如果未找到,则返回从 0 开始的位置或 -1。子字符串是从另一个字符串中提取部分字符串的方法。在这种情况下,我们正在提取单词" LINK"之后的所有内容。

您需要注意和检查的内容:

1. What if LINK doesn't exist?
2. What if the string isn't always upper case?
3. What if the string is null or empty?