获取行中某个单词后的数据
本文关键字:数据 单词 获取 | 更新日期: 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?