我正在使用 Visual Basic.net。
如果我有一个包含很多行的字符串,是否可以在某一行插入一个字符串?我看到有一个字符串的插入函数。是否有在另一个字符串的某一行插入字符串的功能?
我正在使用 Visual Basic.net。
如果我有一个包含很多行的字符串,是否可以在某一行插入一个字符串?我看到有一个字符串的插入函数。是否有在另一个字符串的某一行插入字符串的功能?
是否有在另一个字符串的某一行插入字符串的功能?
不,因为字符串不是行的列表/数组。您必须将其拆分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)
字符串不知道什么是“线”。字符串只是一个字符序列。您可以做的是将字符串转换为单个行的列表(例如 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。
没有将字符串作为行集合处理的字符串方法。您可以使用该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)