繁体   English   中英

获取该String C#的一部分

[英]Get a part of that String C#

:barbosza!barbosza@barbosza.tmi.twitch.tv PRIVMSG #pggamesbr :My text

我想要第二个':'之后的部分,但是我不能被':'分割,因为有时也包含它。

您可以拆分并指定最大项数,以便第二个冒号之后的所有内容最终出现在第三个项中:

string[] parts = str.Split(new char[]{':'}, 3);

现在,第二个冒号之后的部分位于parts[2]

我猜“他也包含它”的意思是“我的文字也包含它”。

在这种情况下,请执行此操作

string toFind = "#pggamesbr :";
string myText = myString.Substring(myString.IndexOf(toFind) + toFind.Length);

我喜欢Guffa的简单Split解决方案,如果这是您在这里所需要的,那就可以使用它。 但是,只是为了好玩...

如果遇到很多奇怪的情况-您希望使用字符串更轻松地进行操作-您可以考虑添加扩展方法来处理它们。 例如,

using System;

public static MyStringExtentions
{
    public static string After(this string orig, char delimiter)
    {
        int p = orig.indexOf(delimiter);
        if (p == -1)
            return string.Empty;
        else
            return orig.Substring(p + 1);
    }
}

然后,在现有代码中,只要您具有using指令即可包括对MyStringExtentions的定义的引用访问权:

string afterPart = myString.After(':').After(':');

免责声明:我实际上没有对此进行测试。 可能需要一些调整。 而且可能会调整为更高效等。

同样,对于这个问题,这可能是多余的。 (为此,请参见Guffa的一个非常简单的好答案。)当您发现自己有很多这样的东西并且想要一种通用的方式来使用它们时,就把它扔出去。

参考。 扩展方法(C#编程指南)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM