【问题标题】:Split String for debug.writeline? [duplicate]为 debug.writeline 拆分字符串? [复制]
【发布时间】:2011-12-16 00:35:52
【问题描述】:

可能重复:
Splitting a string into chunks of a certain size

是否有为每个 714 字符拆分一个字符串?这是由于 c# 中的 debug.writeline 限制

【问题讨论】:

  • 如果您对日志文件执行 .WriteLine() 则没有限制,也许您也可以考虑这一点.. 但需要查看到目前为止您拥有的代码..

标签: c#


【解决方案1】:

是的,我会使用Substring

string myString = "Some very long string you need to output.";

for(int i = 0; i < myString.length; i += 714) {
    Debug.WriteLine(myString.Substring(i, Math.Min(714, myString.Length - i)));
}

或者,对于一个花哨的单线:

foreach(var s in Regex.Matches(myString, ".{,714}")) Debug.WriteLine(s.Value);

【讨论】:

    【解决方案2】:

    您可以使用以下代码:

    static IEnumerable<string> Split(string str, int chunkSize)
    {
        return Enumerable.Range(0, str.Length / chunkSize)
            .Select(i => str.Substring(i * chunkSize, chunkSize));
    }
    

    来自Splitting a string into chunks of a certain size

    并制作自己的 writeline 方法

    【讨论】:

      【解决方案3】:

      用这个解决了

              int chunkSize = 700;
                 int stringLength = str.Length;
                 for (int i = 0; i < stringLength; i += chunkSize)
                 {
                     if (i + chunkSize > stringLength) chunkSize = stringLength - i;
                     Debug.WriteLine(str.Substring(i, chunkSize));
      
                 }
      

      【讨论】:

        【解决方案4】:

        这是一个可以解决问题的扩展方法(没有 LINQ 只是为了保持清晰):

        public static string[] SplitLength(this string val, int length)
        {
            var parts = new List<string>();
        
            for(int i = 0; i < val.Length; i += length)
            {
                parts.Add(val.Substring(i * length, length));
            }
        
            return parts.ToArray();
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-12
          • 1970-01-01
          • 1970-01-01
          • 2017-03-24
          • 2019-06-11
          • 2021-12-07
          相关资源
          最近更新 更多