当找到一个数字时,如何将字符串拆分为两个字符串

本文关键字:字符串 两个 拆分 一个 数字 | 更新日期: 2023-09-27 18:13:17

基本上如果我有string a = "asd333";我想把这个字符串分成两个字符串

string b = "asd"string c = "333"

例如string a = "aaa 555";string[]b = a.Split(' ');将生成

b[0]="aaa"b[1] = "555"

但这不是我想要的,我想把字符串分成两个字符串,不丢失字符,并在数字前分割它

这是我到目前为止的代码

 string text = textBox4.Text.ToString();
            char[] whitespace = new char[] { ' ',''t'  };
            string[] temp = text.Split(whitespace);

但是我想改变它,使string[] temp等于两个字符串,第一个是字母,第二个是数字

当找到一个数字时,如何将字符串拆分为两个字符串

我认为这不是最好的方法,但它是有效的

    string a = "aaa333aaa333aaa22bb22bb1c1c1c";
    List<string> result = new List<string>();
    int lastSplitInedx = 0;
    for (int i = 0; i < a.Length-1; i++)
    {
        if (char.IsLetter(a[i]) != char.IsLetter(a[i + 1]))
        {
            result.Add(a.Substring(lastSplitInedx, (i + 1) - lastSplitInedx));
            lastSplitInedx = i+1;
        }
        if (i+1 == a.Length-1)
        {
            result.Add(a.Substring(lastSplitInedx));
        }
    }
    foreach (string s in result)
    {
        Console.WriteLine(s);
    }

从索引1和2中获取匹配的组

程序中使用的字符串字面值:

c#

@"('D+)'s*('d+)"

在字符串中搜索整数并在该位置分割字符串

string a = "str123";
string b = string.Empty;
int val;
for (int i=0; i< a.Length; i++)
{
    if (Char.IsDigit(a[i]))
        b += a[i];
}
if (b.Length>0)
    val = int.Parse(b);