所以基本上如果我有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等于两个字符串首先是字母而第二个是数字
答案 0 :(得分:1)
从索引1和2获取匹配的组。
程序中使用的字符串文字:
C#
@"(\D+)\s*(\d+)"
答案 1 :(得分:1)
我认为这不是最好的方法,但它有效
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);
}
答案 2 :(得分:-1)
在字符串中搜索整数并在该位置拆分字符串
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);