假设我有一个字符串:
string str = "12386541";
如何将此字符串分解为某种大小的块?
12
38
6541
我想分开前两个,然后是接下来的两个,然后是接下来的四个
答案 0 :(得分:4)
这个怎么样:
string t1 = str.Substring(0, 2);
string t2 = str.Substring(2, 2);
string t3 = str.Substring(4, 4);
答案 1 :(得分:1)
Here is the documentation for string.Substring()
如果您想要一个将字符串拆分成块的通用方法,可以使用string.Substring()
来编写它。
以下是一个例子:
public static IEnumerable<string> SplitIntoChunks(string s, params int[] lengths)
{
int start = 0;
foreach (var length in lengths)
{
if (start >= s.Length)
yield return "";
else if ((start + length) >= s.Length)
yield return s.Substring(start);
else
yield return s.Substring(start, length);
start += length;
}
}
Compillable控制台应用程序,用于演示其用途:
using System;
using System.Collections.Generic;
namespace ConsoleApplication2
{
internal class Program
{
private static void Main(string[] args)
{
string str = "12386541";
var chunks = SplitIntoChunks(str, 2, 2, 4);
Console.WriteLine(string.Join("|", chunks));
}
public static IEnumerable<string> SplitIntoChunks(string s, params int[] lengths)
{
int start = 0;
foreach (var length in lengths)
{
if (start >= s.Length)
yield return "";
else if ((start + length) >= s.Length)
yield return s.Substring(start);
else
yield return s.Substring(start, length);
start += length;
}
}
}
}