我使用的是Visual Basic.net。
如果我有一个包含很多行的字符串,是否可以在某一行插入一个字符串?我看到有一个字符串的插入函数。是否有一个函数在另一个字符串的某一行插入一个字符串?
答案 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)