如何使用C#在ASP.NET中查找两个开始字符串和结束字符串之间的字符串?

如何使用C#在ASP.NET中查找两个开始字符串和结束字符串之间的字符串?,c#,C#,如何在MVC4中找到两个开始字符串和结束字符串之间的字符串 一些例子: D1 => D1 (result) D1-D3 => D1,D2,D3 (result) D5-D6 => D5,D6 (result) D4-D7 => D4,D5,D6,D7 (result) 根据域要求进行错误检查由您负责。 此代码假定输入正确,适用于您提供的示例 注意事项: “+…使用空字符串连接是在简单情况下克服类型转换问题的一种简单方法 您需要检查输入字符串是否正确 代码可以扩展到多个范

如何在MVC4中找到两个开始字符串和结束字符串之间的字符串

一些例子:

D1 => D1 (result)
D1-D3 => D1,D2,D3 (result)
D5-D6 => D5,D6 (result)
D4-D7 => D4,D5,D6,D7 (result)

根据域要求进行错误检查由您负责。 此代码假定输入正确,适用于您提供的示例

注意事项:

  • “+…
    使用空字符串连接是在简单情况下克服类型转换问题的一种简单方法
  • 您需要检查输入字符串是否正确
  • 代码可以扩展到多个范围。当前,如果您提供的不是
    Dx
    Dx-Dy
    ,它将打印“error”。您可以为此使用递归函数

    private static string getString(string input, char controlChar='D')
    {
        string numbersOnly = input.Replace("" + controlChar, "");
    
        string[] bounds = numbersOnly.Split('-');
    
        if( bounds.Length == 1 )
        {
             return "" + controlChar + bounds[0];
        }
        else if (bounds.Length == 2)
        {
            string str = "";
            for (int i = Int32.Parse(bounds[0]); i <= Int32.Parse(bounds[1]); i++)
            {
                str += controlChar + "" + i + ",";
            }
    
            str = str.TrimEnd(',');
    
            return str;
        }
        else
        {
            return "Error";
        }
    }
    
    private静态字符串getString(字符串输入,char controlChar='D')
    {
    字符串numbersOnly=input.Replace(“+controlChar,”);
    string[]bounds=numbersOnly.Split('-');
    if(bounds.Length==1)
    {
    返回“”+controlChar+bounds[0];
    }
    else if(bounds.Length==2)
    {
    字符串str=“”;
    
    对于(inti=Int32.Parse(bounds[0]);i您可以尝试使用以下代码:

    private static string GetString(string inputStr, char replaceChar)
    {
        string outputStr = string.Empty;
    
        var strColl = inputStr.Replace(replaceChar, ' ').Split('-');
        int min = Convert.ToInt32(strColl[0]);
        int max = min;
    
        if (strColl.Count() > 1) max = Convert.ToInt32(strColl[1]);
    
        for(int i = min; i <= max; i++)
        {
            outputStr += "D" + i + ",";
        }
    
        return outputStr = outputStr.TrimEnd(',');  // remove the last comma (,)
    }
    

    尝试此代码,设置
    输入
    值并获取
    输出

    var input = "D1-D5";
    string output = string.Empty;
    if (input.IndexOf("-") > 0)
    {
        var values = input.Split('-');
        int first = int.Parse(System.Text.RegularExpressions.Regex.Match(values[0], @"\d+").Value);
        int second = int.Parse(System.Text.RegularExpressions.Regex.Match(values[1], @"\d+").Value);
    
        for (int i = first; i <= second; i++)
        {
            output += "D" + i + ",";
        }
        output = output.Remove(output.Length - 1);
    }
    
    var input=“D1-D5”;
    字符串输出=string.Empty;
    if(input.IndexOf(“-”)大于0)
    {
    var值=输入。拆分('-');
    int first=int.Parse(System.Text.RegularExpressions.Regex.Match(值[0],@“\d+”).Value);
    int second=int.Parse(System.Text.RegularExpressions.Regex.Match(值[1],@“\d+”).Value);
    
    对于(int i=first;i这与MVC有什么关系?是文本
    D
    fixed吗?1.)用空字符串替换
    D
    。2。)按
    -
    .3]拆分字符串。检查拆分返回的元素数。4)执行循环并将其存储在数组中,循环的范围基于转换为int的数组的下限和上限。5)将其转换为字符串并用
    D
    填充。
    GetString("D1-D3", 'D');
    
    var input = "D1-D5";
    string output = string.Empty;
    if (input.IndexOf("-") > 0)
    {
        var values = input.Split('-');
        int first = int.Parse(System.Text.RegularExpressions.Regex.Match(values[0], @"\d+").Value);
        int second = int.Parse(System.Text.RegularExpressions.Regex.Match(values[1], @"\d+").Value);
    
        for (int i = first; i <= second; i++)
        {
            output += "D" + i + ",";
        }
        output = output.Remove(output.Length - 1);
    }