如何正确分割字符串?
本文关键字:字符串 分割 何正确 | 更新日期: 2023-09-27 18:11:33
((100&12)%41)&(43&144)
这是我的字符串,我想把这个字符串分割成这样:
(
(
100
&
12
41
)....
我尝试使用string.ToCharArray()方法,但大整数带来的问题,如100:
1
0
0
thanks for help
您可以编写自己的标记器,但为了帮助,有这样的东西是有用的(代码未经过测试):
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]}));
}
这里没有快速的1命令解决方案,如果您进一步处理您的数组以连接连续的char.isdigit()字符,String. tochararray()可以工作,或者您可以使用String。拆分方法,通过正确配置分隔符提取100、12和41块。
尝试遍历字符串并观察下一个char是否为数字。如果为false则分割,否则跳过
返回行列表:
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
)
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);
}
}
}