在某些字符计数后拆分字符串
我需要一些帮助。 我正在使用包含exception详细信息的文本文件编写错误日志。 有了这个我希望我的堆栈跟踪细节写成如下所示,而不是直线,以避免用户滚动记事本的滚动条或让我们说在第100个字符,字符串将写入下一行。 我不知道如何实现这一目标。 提前致谢。
样品(这是我目前的直线输出)
STACKTRACE: at stacktraceabcdefghijklmnopqrstuvwxyztacktraceabcdefghijklmnopqrswxyztacktraceabcdefghijk
* *我想要的输出(字符串将在特定字符数后写入下一行)
STACKTRACE: at stacktraceabcdefghijklmno pqrstuvwxyztacktraceabcdefgh ijklmnopqrswxyztacktraceabcd efghijk
我的代码
builder.Append(String.Format("STACKTRACE:")); builder.AppendLine(); builder.Append(logDetails.StackTrace);
下面的示例每行分割10个字符,您可以根据需要更改{N}
,其中N可以是任意数字。
var input = "stacktraceabcdefghijklmnopqrstuvwxyztacktraceabcdefghijklmnopqrswxyztacktraceabcdefghijk"; var regex = new Regex(@".{10}"); string result = regex.Replace(input, "$&" + Environment.NewLine); Console.WriteLine(result);
这是演示
您可以使用以下代码:
string yourstring; StringBuilder sb = new StringBuilder(); for(int i=0;i
你可以为此创建一个函数
string splitat(string line, int charcount) { string toren = ""; if (charcount>=line.Length) { return line; } int totalchars = line.Length; int loopcnt = totalchars / charcount; int appended = 0; for (int i = 0; i < loopcnt; i++) { toren += line.Substring(appended, charcount) + Environment.NewLine; appended += charcount; int left = totalchars - appended; if (left>0) { if (left>charcount) { continue; } else { toren += line.Substring(appended, left) + Environment.NewLine; } } } return toren; }
最好,最简单和通用答案:)。 只需将splitAt
的值设置为您希望它中断后的字符数。
string originalString = "1111222233334444"; List test = new List (); int splitAt = 4; // change 4 with the size of strings you want. for (int i = 0; i < originalString.Length; i = i + splitAt) { if (originalString.Length - i >= splitAt) test.Add(originalString.Substring(i, splitAt)); else test.Add(originalString.Substring(i,((originalString.Length - i)))); }