我有一个文本文件,我想添加一个文本块来使用Go。文本文件看起来像这样(没有编号)
我希望它看起来像这样
假设我已经打开了文件,并在名为'lines'的文件中创建了每行的字符串数组。
//find line with ]
for i, line := range lines {
if(strings.ContainsRune(line, ']')) {
//take the line before ']'... and write to it somehow
lines[i-1] (?)
}
}
我该怎么做?
答案 0 :(得分:0)
lines = append(lines[:i],
append([]string{"MY INSERTED TEXT HERE"}, lines[i:]...)...)
或
lines = append(lines, "")
copy(lines[i+1:], lines[i:])
lines[i] = "MY INSERTED TEXT HERE"
第二种方法更有效。这两种方法列在有用的SliceTricks页面上。
答案 1 :(得分:0)
如果要对切片执行此操作,可以在正确的索引处插入所需的字符串。
// make the slice longer
lines = append(lines, "")
// shift each element back
copy(lines[i+1:], lines[i:])
// now you can insert the new line at i
lines[i] = x