在字符串中循环并在2个字符之间获取单词并保存到列表

时间:2014-01-25 04:59:51

标签: asp.net string filter

我们有字符串示例: www.example.com/default.aspx?code-1/price-2/code-4 / 的 我想从代码和价格中获取整数并保存到整数列表。 例如,1和4是代码,2是站点中过滤器的价格。

InBetween = GetStringInBetween(“Brand-”,“/”,Example,false,false);

请帮帮我。

1 个答案:

答案 0 :(得分:1)

以下是一个完成您要求的简单程序。

    class Program
{
    public void GetCodesAndPrice(string url,out List<int> listOfCodes, out List<int> listOfPrice )
    {
        listOfCodes=new List<int>();
        listOfPrice = new List<int>();
        url = url.Substring(url.IndexOf('?')+1);
        var strArray = url.Split('/');
        foreach (string s in strArray)
        {
            if(s.ToLower().Contains("code"))
                listOfCodes.Add(GetIntValue(s));

            else if(s.ToLower().Contains("price"))
                listOfPrice.Add(GetIntValue(s));
        }

        // Now you have list of price in "listOfPrice" and codes in "listOfCodes",
        // If you want to return these two list then declare as out

    }
    public int GetIntValue(string str)
    {
        try
        {
            return Convert.ToInt32(str.Substring(str.IndexOf('-') + 1));
        }
        catch (Exception ex)
        {

            // Handle your exception over here
        }
        return 0; // It depends on you what do you want to return if exception occurs in this function
    }
    public static void Main()
    {
        var prog = new Program();
        List<int> listOfCodes;
        List<int> listOfPrice;
            prog.GetCodesAndPrice("www.example.com/default.aspx?code-1/price-2/code-4/", out listOfCodes,out listOfPrice);
        Console.ReadKey();
    }
}

这是完整的控制台程序。测试它并嵌入您的程序。希望这会对你有所帮助