如何在特定文本后获取数组值

时间:2014-08-26 09:24:53

标签: c# arrays string

我有一个由以下字符串组成的数组..

FixedLines Rs. 0.200 / 1 min Rs. 0.600 / 1 min

我通过基于字符串中的空格进行拆分将此字符串转换为字符串数组。 现在我想在子串Rs.之后获取字符串意味着我想要值0.200 / 1 min0.600 / 1 min

请帮助我如何将字符串数组中的这些值转换为字符串。

3 个答案:

答案 0 :(得分:1)

你可以在你的问题的评论中做Sayse所说的。

        string phrase = "FixedLines Rs. 0.200 / 1 min Rs. 0.600 / 1 min";

        var split = new string[1];
        split[0] = "Rs.";

        var results = phrase.Split(split, StringSplitOptions.RemoveEmptyEntries).Skip(1);

答案 1 :(得分:1)

您可以按Rs.拆分,只收取包含/的部分:

string str = "FixedLines Rs. 0.200 / 1 min Rs. 0.600 / 1 min";
var parts = str.Split(new[] { " Rs. " }, StringSplitOptions.RemoveEmptyEntries)
    .Where(p => p.Contains("/"));

foreach(string part in parts)
    Console.WriteLine(part);

输出:

0.200 / 1 min
0.600 / 1 min

您:

  

如何将这两个值转换为字符串?

您可以使用string.Join,f.e。如果你想用换行符分隔它们:

string values = string.Join(Environment.NewLine, parts);

您:

  

对不起!但我想要两个字符串,例如str1和str2

我建议使用集合而不是单个变量,或者您确定总是只有两个值吗?

您可以使用ToArrayToList创建集合,然后您可以使用索引器或LINQ扩展方法,例如FirstLastElementAtOrDefault

string[] values = parts.ToArray();
string firstVal = values.First();
string lastVal = values.Last();

答案 2 :(得分:0)

听起来你可以做到

 stringName.Split(new string[]{" Rs. "}, StringSplitOptions.RemoveEmptyEntries)
           .Skip(1);

根据Rs.拆分字符串,然后跳过第一个条目