我是 C# 的新手。我有一些问题...
我在这段代码后面有字符串
string taxNumber = "1222233333445";
我想从这个字符串中获取数据
string a = "1"
string b = "2222"
string c = "33333"
string d = "44"
string e = "5"
请告诉我有关从字符串获取数据的方法。
非常感谢你^^
我是 C# 的新手。我有一些问题...
我在这段代码后面有字符串
string taxNumber = "1222233333445";
我想从这个字符串中获取数据
string a = "1"
string b = "2222"
string c = "33333"
string d = "44"
string e = "5"
请告诉我有关从字符串获取数据的方法。
非常感谢你^^
使用 String.Substring(int index, int length) 方法
string a = taxNumber.Substring(0, 1);
string b = taxNumber.Substring(1, 4);
// etc
哦,好吧,我能想到的最好的是:
IEnumerable<string> numbers
= taxNumber.ToCharArray()
.Distinct()
.Select(c => new string(c, taxNumber.Count(t => t == c)));
foreach (string numberGroup in numbers)
{
Console.WriteLine(numberGroup);
}
输出:
1
2222
33333
44
5
这也可以,你不需要固定字符数,你可以通过改变 1's , 2's 等来检查
string taxNumber = "1222233333445";
string s1 = taxNumber.Substring(taxNumber.IndexOf("1"), ((taxNumber.Length - taxNumber.IndexOf("1")) - (taxNumber.Length - taxNumber.LastIndexOf("1"))) + 1);
string s2 = taxNumber.Substring(taxNumber.IndexOf("2"), ((taxNumber.Length - taxNumber.IndexOf("2")) - (taxNumber.Length - taxNumber.LastIndexOf("2"))) + 1);
string s3 = taxNumber.Substring(taxNumber.IndexOf("3"), ((taxNumber.Length - taxNumber.IndexOf("3")) - (taxNumber.Length - taxNumber.LastIndexOf("3"))) + 1);
您可以使用Char.IsDigit
从字符串中识别数字,并且可以应用如下进一步的逻辑:
for (int i=0; i< taxNumber.Length; i++)
{
if (Char.IsDigit(taxNumber[i]))
{
if(taxNumber[i-1]==taxNumber[i])
{
/*Further assign values*/
}
}
试试这个代码
string taxNumber = "1222233333445";
char[] aa = taxNumber.ToCharArray();
List<string> finals = new List<string>();
string temp = string.Empty;
for (int i = 0; i < aa.Length; i++)
{
if (i == 0)
{
temp = aa[i].ToString();
}
else
{
if (aa[i].ToString() == aa[i - 1].ToString())
{
temp += aa[i];
}
else
{
if (temp != string.Empty)
{
finals.Add(temp);
temp = aa[i].ToString();
}
}
if (i == aa.Length - 1)
{
if (aa[i].ToString() != aa[i - 1].ToString())
{
temp = aa[i].ToString();
finals.Add(temp);
}
else
{
finals.Add(temp);
}
}
}
}
并检查决赛字符串列表的值
你可以使用正则表达式:
string strRegex = @"(1+|2+|3+|4+|5+|6+|7+|8+|9+|0+)";
RegexOptions myRegexOptions = RegexOptions.None;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"1222233333445";
return myRegex.Split(strTargetString);