将字符串拆分为某个第n个大小的块

时间:2015-04-08 09:14:39

标签: c# asp.net

假设我有一个字符串:

string str = "12386541"; 

如何将此字符串分解为某种大小的块?

12

38

6541

我想分开前两个,然后是接下来的两个,然后是接下来的四个

2 个答案:

答案 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;
            }
        }
    }
}