2014-10-01 67 views
0

我有一個文本文件,我想添加一個文本塊來使用Go。該文本文件看起來像這樣(沒有編號)將字符串添加到Go中的現有文本文件中

  1. 等等
  2. blah2
  3. ]
  4. blah3
  5. blah4

,我希望它看起來像這樣

  1. blah
  2. blah2
  3. 我插入的文本這裏
  4. ]
  5. blah3
  6. blah4

假設我已經打開的文件和創建的每個行的所謂'文件中的字符串數組線。

//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
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頁面上。

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 
相關問題