猿问

在文本文件中每一行的第 n 个位置插入字符

我有文本文件,我需要在文本文件中每行的第 8 个字符处添加一个空格。文本文件有 1000 多行

我将如何进行?

原始文件示例:

123456789012345....
abcdefghijklmno....

新文件:

12345678 9012345
abcdefgh ijklmno

阅读这篇文章很有帮助:

在字符串的每一行添加一个字符

注意:文本行的长度可以是可变的(不确定是否重要,一行可以有 20 个字符,下一行可以有 30 个字符,等等。所有文本文件都在文件夹中:C:\TestFolder

类似问题:

删除文本文件中每行第 n 个位置的字符


慕勒3428872
浏览 67回答 1
1回答

慕容708150

您不需要在这里使用正则表达式。一种简单的方法是使用File.ReadAllLines读取所有行并简单地将字符添加到所需位置,如以下代码所示:var sb = new StringBuilder();string path = @"E:\test\test.txt"; //input filestring path2 = @"E:\test\test2.txt"; //the output file, could be same as input path to overwritestring charToInsert = " ";string[] lines = File.ReadAllLines(path);foreach (string line in lines){    sb.AppendLine(line.Length > 8 ? line.Substring(0, 8) + charToInsert + line.Substring(9) : line);}File.WriteAllText(path2, sb.ToString());在这里我使用不同的输出路径进行测试(不要覆盖输入)编辑:修改后的代码循环遍历文件夹中的所有 .txt 文件:string path = @"C:\TestFolder";string charToInsert = " ";string[] allFiles = Directory.GetFiles(path, "*.txt", SearchOption.TopDirectoryOnly); //Directory.EnumerateFilesforeach (string file in allFiles){    var sb = new StringBuilder();    string[] lines = File.ReadAllLines(file); //input file    foreach (string line in lines)    {        sb.AppendLine(line.Length > 8 ? line.Substring(0, 8) + charToInsert + line.Substring(9) : line);    }    File.WriteAllText(file, sb.ToString()); //overwrite modified content}
随时随地看视频慕课网APP
我要回答