我需要在字符串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
答案 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。