如何在MVC4的兩個開始和結束字符串之間找到一個字符串?如何在ASP.NET中使用C#在兩個開始和結束字符串之間找到一個字符串?
一些例子:
D1 => D1 (result)
D1-D3 => D1,D2,D3 (result)
D5-D6 => D5,D6 (result)
D4-D7 => D4,D5,D6,D7 (result)
如何在MVC4的兩個開始和結束字符串之間找到一個字符串?如何在ASP.NET中使用C#在兩個開始和結束字符串之間找到一個字符串?
一些例子:
D1 => D1 (result)
D1-D3 => D1,D2,D3 (result)
D5-D6 => D5,D6 (result)
D4-D7 => D4,D5,D6,D7 (result)
試試這個代碼,設置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);
}
錯誤檢查爲每個域的要求是你。 此代碼假定輸入正確並適用於您提供的示例。
夫婦筆記:
"" + ...
級聯和空字符串是克服簡單的情況下代碼可以擴展到多個範圍。目前,如果您提供Dx
或Dx-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";
}
}
//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();
}
您可以使用此代碼嘗試:
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');
這與MVC有什麼關係? –
是文字'D'固定? –
@JW웃YES .... :) – user2398766