String在某一行插入

时间:2013-04-26 10:52:37

标签: vb.net string visual-studio-2012 insert

我使用的是Visual Basic.net。

如果我有一个包含很多行的字符串,是否可以在某一行插入一个字符串?我看到有一个字符串的插入函数。是否有一个函数在另一个字符串的某一行插入一个字符串?

3 个答案:

答案 0 :(得分:2)

  

是否有函数将字符串插入另一行的某一行   字符串?

不,因为字符串不是行的列表/数组。您必须按Environment.NewLine拆分才能获得一个数组,ToList以获得List(Of String) String.Join。然后,您可以在插入后将Dim lines = MultiLineText.Split({Environment.NewLine}, StringSplitOptions.None).ToList() lines.Insert(2, "test") ' will throw an ArgumentOutOfRangeException if there are less than 2 lines ' Dim result = String.Join(Environment.NewLine, lines) 放在一起使用:

{{1}}

答案 1 :(得分:1)

字符串不知道“线”是什么。字符串只是一系列字符。你可以做的是将你的字符串转换成单独的行列表(例如List<string>),然后插入到该列表中。

List<string> listOfLines = new List<string>();
listOfLines.AddRange(sourceString.Split(new String[] { Environment.NewLine }, StringSplitOptions.None));

listOfLines.Insert(13, "I'm new here");

string result = String.Join(Environment.NewLine, listOfLines);

这是C#代码,但我很确定你可以轻松将其转换为VB.NET。

答案 2 :(得分:0)

没有字符串方法将字符串作为行集合处理。您可以使用Insert方法,但是您必须找到字符串中的哪个位置来自行放置。

示例:

' Where to insert
Dim line As Integer = 4
' What to insert
Dim content As String = "asdf"

' Locate the start of the line
Dim pos As Integer = 0
Dim breakLen As Integer = Environment.Newline.Length
For i As Integer = 0 to line
  pos = text.IndexOf(Environment.Newline, pos + breakLen)
Next

' Insert the line
text = text.Insert(pos, content + Environment.Newline)