0

我正在使用 Visual Basic.net。

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

4

3 回答 3

2

是否有在另一个字符串的某一行插入字符串的功能?

不,因为字符串不是行的列表/数组。您必须将其拆分Environment.NewLine以获取数组,ToList以获取List(Of String)具有Insert方法的 a 。然后您可以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)
于 2013-04-26T10:57:24.543 回答
1

字符串不知道什么是“线”。字符串只是一个字符序列。您可以做的是将字符串转换为单个行的列表(例如 as 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。

于 2013-04-26T10:56:05.877 回答
1

没有将字符串作为行集合处理的字符串方法。您可以使用该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)
于 2013-04-26T11:01:34.430 回答