2013-05-19 70 views

回答

0

試試這個代碼,設置input值並獲得output

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); 
} 
0

錯誤檢查爲每個域的要求是你。 此代碼假定輸入正確並適用於您提供的示例。

夫婦筆記:

  1. "" + ...級聯和空字符串是克服簡單的情況下
  2. 您需要檢查輸入的字符串是正確的類型轉換問題的簡單方法。
  3. 代碼可以擴展到多個範圍。目前,如果您提供DxDx-Dy以外的其他東西,則會打印出「錯誤」。你可以爲此使用遞歸函數。

    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"; 
        } 
    } 
    
0
//To find a middle string inclusively 
    var alpha = "abcdefghijklmnopqrstuvwxyz"; 

    var begin = "cde"; 
    var end = "mno"; 

    var beginIndex = alpha.IndexOf(begin); 
    var endIndex = alpha.IndexOf(end); 

    if (beginIndex != -1 && endIndex != -1) 
    { 
    var middle = alpha.Substring(beginIndex, endIndex + end.Length - beginIndex); 
    System.Diagnostics.Debugger.Break(); 
    } 
0

您可以使用此代碼嘗試:

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 (,) 
} 

你可以簡單的調用這個方法如下:

GetString("D1-D3", 'D'); 
相關問題