程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了字符串到字符串数组每个 'n' 个字符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决字符串到字符串数组每个 'n' 个字符?

开发过程中遇到字符串到字符串数组每个 'n' 个字符的问题如何解决?下面主要结合日常开发的经验,给出你关于字符串到字符串数组每个 'n' 个字符的解决方法建议,希望对你解决字符串到字符串数组每个 'n' 个字符有所启发或帮助;

我有一个包含 5000 个字符的字符串生成器。我需要将它拆分为 5 个字符串,每个字符串包含 1000 个字符。 有什么方法可以用吗?

解决方法

您可以迭代输入字符串并重复获取 1000 个长度的子字符串:

string input = "some string with 5000+ characters in it";
var list = new List<string>();
int i = 0;
while (i < input.Length) {
    int subLength = Math.Min(input.Length - i,1000);
    string item = input.Substring(i,subLength);
    list.Add(item);
    i += 1000;
}

输出 list 应该有一定数量的 1000 个字符串,如果原始长度不是 1000 的完美倍数,则最终条目可能少于 1000 个字符。

,

您可以一次只循环 1000,然后使用 ToString 获取子字符串:

const int chunkSize = 1000;
var newStrings = new List<string>();
for (var i = 0; i < myStringBuilder.Length; i += chunkSize)
{
    newStrings.Add(myStringBuilder.ToString(i,Math.Min(chunkSize,myStringBuilder.Length - i)));
}

如果您想要 StringBuilder 长度,那么您可以在新的 Append 上使用 StringBuilder 来获得它(仅在 .NET 5.0 中):

const int chunkSize = 1000;
var newStrings = new List<StringBuilder>();
for (var i = 0; i < myStringBuilder.Length; i += chunkSize)
{
    newStrings.Add(new StringBuilder(chunkSize).Append(myStringBuilder,i,myStringBuilder.Length - i)));
}
,

您可以使用 StringBuilder 类的 CopyTo 方法将字符从实例的指定段复制到目标数组的指定段。

这是一个简单的代码示例,如何将 StringBuilder 内容分成一些字符串:

        StringBuilder stringBuilder = new StringBuilder("12345678");
        // length of strings
        int length = 2;
        char[] destination = new char[length];
        List<string> strings = new List<string>();

        for(int i = 0; i <= stringBuilder.Length - length; i += length)
        {
            stringBuilder.CopyTo(i,destination,length);
            strings.Add(new string(destination));
        }

大佬总结

以上是大佬教程为你收集整理的字符串到字符串数组每个 'n' 个字符全部内容,希望文章能够帮你解决字符串到字符串数组每个 'n' 个字符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: