C# 如何从字符串的索引中获取数据

C# 如何从字符串的索引中获取数据,c#,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 = taxNum

我是新来的。我有一些问题

我有一个字符串跟在这个代码后面

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

您可以使用
Char.IsDigit
来识别字符串中的数字,并可以应用以下进一步的逻辑:

 for (int i=0; i< taxNumber.Length; i++)
    {
        if (Char.IsDigit(taxNumber[i]))
          {
                  if(taxNumber[i-1]==taxNumber[i])
                   {
                     /*Further assign values*/ 
                   }
          }
for(int i=0;i
这也可以,您不需要固定字符的数量,您可以通过更改1、2等的数量进行检查

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

哦,我能想到的最好的办法是:

IEnumerable<string> numbers
    = taxNumber.ToCharArray()
               .Distinct()
               .Select(c => new string(c, taxNumber.Count(t => t == c)));

foreach (string numberGroup in numbers)
{
    Console.WriteLine(numberGroup);
}

尝试此代码

    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 taxNumber=“1222233333445”;
char[]aa=taxNumber.ToCharArray();
列表总决赛=新列表();
字符串温度=字符串为空;
for(int i=0;i
并检查最终字符串列表的值

您可以使用正则表达式:

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

你试过什么???
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);