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

时间:2015-01-13 03:05:31

标签: c#

让我们说我的字符串叫做hello equaled" EJFEWJFWEFOWEFOJWEOFWEF LINK http://google.com"

我想在" LINK"之后基本上得到任何东西。在这种情况下是" http://google.com"。

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

2 个答案:

答案 0 :(得分:1)

一种有效的方式:

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

Example

答案 1 :(得分: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。 Substring是一种从另一个字符串中提取字符串的一部分的方法。在这种情况下,我们正在提取“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?