((100&12)%41)&(43&144)
这是我的字符串,我希望将此字符串拆分为:
(
(
100
&
12
41
)....
我尝试使用string.ToCharArray()方法,但是大整数会带来像100这样的问题:
1
0
0
感谢您的帮助
答案 0 :(得分:1)
这里没有快速1命令解决方案imo,string.ToCharArray()可以工作,如果你进一步处理你的数组连接连续的char.isdigit()字符,或者你可以使用String.split方法提取100,12和41通过正确配置分隔符来阻塞块,并使用string.ToCharArray来分割剩下的分隔符。
答案 1 :(得分:1)
尝试迭代你的字符串并观察下一个字符是否为数字。如果为false则拆分,否则跳过
答案 2 :(得分:1)
您可以编写自己的标记生成器,但是对于这样的帮助是有用的(代码未经过测试):
var lst = new List<string>();
for (int i=0;i<str.Length;i++)
{
if (char.IsDigit(str[i])
{
var tmp = new string(new []{str[i]});
i++;
while(i<str.Length && char.IsDigit(str[i]))
{ tmp+= str[i]; i++}
i--;
lst.Add(tmp);
}
else
lst .Add(new string(new []{str[i]}));
}
答案 3 :(得分:1)
返回行列表:
static List<string> SplitLine(string str)
{
var lines = new List<string>();
for (int i = 0; i < str.Length; i++)
{
if (!char.IsDigit(str[i]))
{
lines.Add(str[i].ToString());
continue;
}
string digit = "";
while (char.IsDigit(str[i]))
{
digit += str[i++];
}
i--;
lines.Add(digit);
}
return lines;
}
输出:
(
(
100
&
12
)
%
41
)
&
(
43
&
144
)
答案 4 :(得分:0)
using System;
using System.Text.RegularExpressions;
class Sample {
public static void Main(){
var str = "((100&12)%41)&(43&144)";
var pat = "([()&%])";
var tokens = Regex.Split(str,pat);
foreach(var token in tokens){
if( !string.IsNullOrEmpty(token))
Console.WriteLine("{0}", token);
}
}
}