【问题标题】:How to split string by number of characters and add at the begin of each string custom string如何按字符数拆分字符串并在每个字符串的开头添加自定义字符串
【发布时间】:2021-03-12 09:30:46
【问题描述】:

例如我有一些字符串,这个字符串的长度 = 2900 如何将此字符串除以部分(长度 255)并为每个部分添加“部分 {number}”+ 分割字符串

在输入时:字符串(2900 长度) 输出:包含 12 个元素的列表,每个元素应为 = Part {number} + 子字符串且长度小于 255

我就是这样尝试的,但是当我有超过 9 个部分时我会遇到麻烦

public static IEnumerable<string> SplitJobComment(string str, int chunkLength)
        {
            var partNumber = 1;
            var partNumberTemplate = $"Part {partNumber} ";
            chunkLength -= partNumberTemplate.Length;

            for (var i = 0; i < str.Length; i += chunkLength)
            {
                if (chunkLength + i > str.Length)
                {
                    chunkLength = str.Length - i;
                }

                partNumberTemplate = $"Part {partNumber} ";
                partNumber++;

                yield return partNumberTemplate + str.Substring(i, chunkLength);
            }
        }

【问题讨论】:

  • 预期的输入和输出在这里会有很大帮助。
  • but I have trouble when I have more than 9 part 什么麻烦?
  • “但是当我有超过 9 个部分时我会遇到麻烦”:也许你可以使用 var partNumberTemplate = $"Part {partNumber:D2} ";,但我只能假设你的问题是由于 partNumberTemplate 的长度发生了变化当partNumber>9
  • @Marco,是的,这是我的问题,我该如何解决?

标签: c# string split ienumerable


【解决方案1】:

考虑到真正的问题,正如我所假设的那样,partNumberTemplate 的长度在 partNumber>9 时发生变化,一个可能的解决方案可以是

var partNumberTemplate = $"Part {partNumber:D2} ";

{partNumber:D2} 始终使用 2 位数字格式化数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多