110,538
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
string str = "{efhrg,g.h435,6.yu.4.23.}";
var r = new List<int>();
var num = 0;
foreach( var c in str)
{
if (char.IsDigit(c)) num = num * 10 + (c - '0');
else
{
if(num!=0) r.Add(num);
num = 0;
}
}
var a = r.ToArray();
Console.WriteLine(string.Join(", ", a));
}
var str = "{efhrg,g.h435,6.yu.4.23}";
Func<string, int[]> getNums1 = inputString =>
{
if (string.IsNullOrEmpty(inputString))
throw new ArgumentException();
var inputStack = new Stack<int>(inputString.Length);
var lst = new List<int>();
for (int i = 0; i < inputString.Length; i++)
{
var isDigit = char.IsDigit(inputString[i]);
if (isDigit)
inputStack.Push((int)(inputString[i] - '0'));
if (inputStack.Count > 0 &&
(!isDigit || i == inputString.Length - 1))
{
int val = 0, scale = 1;
while (inputStack.Count > 0)
{
val += inputStack.Pop() * scale;
scale *= 10;
}
lst.Add(val);
}
}
return lst.ToArray();
};