我有一个像这样的字符串:
var id = "01020304";
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将它分成四个变量,称为pr,pa,fo,它每个变量都需要有两个字符串.寻找一个优雅的解决方案,如果它存在.
你可以使用Substring:
pr = id.Substring(0, 2);
pa = id.Substring(2, 2);
fo = id.Substring(4, 2);
it = id.Substring(6, 2);
Run Code Online (Sandbox Code Playgroud)
由于你有四个不同的变量,你不能比使用Substring更优雅:
var pr = id.Substring(0, 2);
var pa = id.Substring(2, 2);
var fo = id.Substring(4, 2);
var it = id.Substring(6);
Run Code Online (Sandbox Code Playgroud)
如果你正在寻找一个包含四个2字符子串的数组,你可能会变得更加漂亮:
var parts = new string[4];
for (int i = 0 ; i != parts.Length ; i ++) {
parts[i] = id.Substring(2*i, 2);
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用LINQ表达式可以完成相同的操作:
var parts = Enumerable
.Range(0, id.Length/2)
.Select(i => x.Substring(2*i, 2))
.ToArray();
Run Code Online (Sandbox Code Playgroud)
尝试正则表达式.
var id = "01020304";
string pat = "(?:(\\d{2}))";
var result = Regex.Split(id, pat).Where(p=>p!=string.Empty);
foreach (var t in result)
{
Console.WriteLine(t);
}
Run Code Online (Sandbox Code Playgroud)