从特定标志到标志的子串

时间:2014-02-03 11:24:21

标签: c# string list substring trim

我有一个字符串列表,格式如下:

Web.WebClient.Areas.Scada.Services.IScadaManualOverrideService,Web.WebClient.TDMSWebApp

我只需要逗号的部分符号到第一个点符号。 例如,它应返回此字符串:IScadaManualOverrideService

如果我有像第一个字符串这样的字符串列表,那么任何人都知道如何做到这一点并获得子字符串?

6 个答案:

答案 0 :(得分:1)

  

从逗号到第一个点号

你的意思是从点到逗号?

您可以先用逗号分割字符串,然后用点分割并取最后一个:

string text = "Web.WebClient.Areas.Scada.Services.IScadaManualOverrideService,Web.WebClient.TDMSWebApp";
string result = text.Split(',')[0].Split('.').Last(); // IScadaManualOverrideService

答案 1 :(得分:0)

    string s = "Web.WebClient.Areas.Scada.Services.IScadaManualOverrideService,Web.WebClient.TDMSWebApp";
    string s1 = s.Substring(0, s.IndexOf(","));
    string s2 = s1.Substring(s1.LastIndexOf(".") + 1);

答案 2 :(得分:0)

 string input = "Web.WebClient.Areas.Scada.Services.IScadaManualOverrideService,Web.WebClient.TDMSWebApp";
 int commaIndex = input.IndexOf(',');
 string remainder = input.Substring(0, commaIndex);
 int dotIndex = remainder.LastIndexOf('.');

 string output = remainder.Substring(dotIndex + 1);

这可以写得短得多,但对于解释我认为这更清楚

答案 3 :(得分:0)

sampleString.Split(new []{','})[0].Split(new []{'.'}).Last()

答案 4 :(得分:0)

string s = "Web.WebClient.Areas.Scada.Services.IScadaManualOverrideService,Web.WebClient.TDMSWebApp";
string subStr = new string(s.TakeWhile(c => c != ',').ToArray());
string last = new string(subStr.Reverse().TakeWhile(c => c != '.').Reverse().ToArray());
Console.WriteLine(last);  // output: IScadaManualOverrideService

答案 5 :(得分:0)

拆分字符串不是所谓的有效解决方案。对不起,不能只是通过附近。

所以这是另一个

    string text = "Web.WebClient.Areas.Scada.Services.IScadaManualOverrideService,Web.WebClient.TDMSWebApp";
    var end = text.IndexOf(',');
    var start = text.LastIndexOf('.', end) + 1;
    var result = text.Substring(start, end - start);

Proof woof woof

防弹版本(丑陋)

    string text = "IScadaManualOverrideService";
    //string text = "Services.IScadaManualOverrideService";
    //string text = "IScadaManualOverrideService,";
    //string text = "";
    var end = text.IndexOf(',');
    var start = text.LastIndexOf('.', (end == -1 ? text.Length - 1 : end)) + 1;
    var result = text.Substring(start, (end == -1 ? text.Length : end) - start);

如果需要黑客攻击,请插入

if(text == null)
    return "Stupid hacker, die!";