当使用String.Insert(int index,string text)插入新字符串的末尾时:" 00000"

时间:2017-06-27 12:49:48

标签: c# string file insert

我需要在字符串line的特定位置插入另一个字符串,所以我计算了开始插入的具体位置:

string info1 = "info1";
string info2 = "info2"; 
string info3 = "info3";
string info4 = "info4";
string keyWord = "BELEGIT";

start = line.IndexOf(keyWord, 0) + keyWord.Length + 13;
var aStringBuilder = new StringBuilder(line);
aStringBuilder.Remove(start, 19);
line = aStringBuilder.ToString();

string newLine =  line.Insert(start, "\r\n" + info1 + "\r\n" + "\r\n" + info2 + "\r\n" + info3 + "\r\n" + info4 + "\r\n");

newLine将是我的应用程序中文件的内容)。

newline包含正确的内容,但在"00000"之后插入的字符串"info4"除外。因此,在我的新文件中,newline内容为newline,紧接"00000"之后。我真的不明白为什么。 提前谢谢。

INPUT: line包含:

  

#〜11 \ r \ NT-02040121R \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ n2.000000000 \ r \ n

OUTPUT newLine包含:

  

#〜11 \ r \ NT-02040121R \ r \ ninfo1 \ r \ n \ r \ ninfo2 \ r \ ninfo3 \ r \ ninfo4 \ r \ N00000 \ r \ n

1 个答案:

答案 0 :(得分:2)

假设您只想要line的前19个字符,可以使用Substring来获取它们,string.Format来构建新的string

像这样的东西

var start = line.Substring(0, 19);
string newLine = $"{start}\r\n{info1}\r\n\r\n{info2}\r\n{info3}\r\n{info4}\r\n";

第二行是

的缩写形式
string newLine = string.Format("{0}\r\n{1}\r\n\r\n{2}\r\n{3}\r\n{4}\r\n", start, info1, info2, info3, info4);

如果您需要有关string.Format的更多信息,请查看MSDN