Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当字符串找到一个数字时,如何将其拆分为两个字符串_C#_Regex_String - Fatal编程技术网

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

C# 当字符串找到一个数字时,如何将其拆分为两个字符串,c#,regex,string,C#,Regex,String,所以基本上如果我有string a=“asd333”我想将此字符串拆分为两个字符串 string b=“asd”和string c=“333” 例如string a=“aaa 555”;字符串[]b=a.Split(“”)将使 b[0]=“aaa”和b[1]=“555” 但这不是我想要的,我想把字符串分成两个字符串,不丢失字符,在一个数字之前分开 这是到目前为止我的代码 string text = textBox4.Text.ToString(); char[] wh

所以基本上如果我有
string a=“asd333”我想将此字符串拆分为两个字符串

string b=“asd”
string c=“333”

例如
string a=“aaa 555”;字符串[]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等于两个字符串,第一个是字母,第二个是数字,从索引1和索引2获取匹配的组

程序中使用的字符串文字:

C#


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

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);
string a=“str123”;
字符串b=string.Empty;
int-val;
for(int i=0;i0)
val=int.Parse(b);

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

    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);
    }
string a=“aaa33aaa33aaa22bb22bb1c1c”;
列表结果=新列表();
int lastSplitInedx=0;
for(int i=0;i
所以您试图删除空格,然后按空格分割?为什么要将
替换为
字符串。空的
?为什么不直接按这个正则表达式拆分(?
    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);
    }