.net 如何从左到右连接多行字符串
我有一个包含3个条目的数组 数组的第一个条目是多行字符串:.net 如何从左到右连接多行字符串,.net,vb.net,string,join,.net,Vb.net,String,Join,我有一个包含3个条目的数组 数组的第一个条目是多行字符串: "My dog you " 第二项也是: " dont like that " " ... will die! " 还有人力资源部: " dont like that " " ... will die! " 现在,我如何组合所有多行字符串以从左到右获得该连接字符串,如下所示: My dog don
"My dog
you "
第二项也是:
" dont like that
"
" ...
will die! "
还有人力资源部:
" dont like that
"
" ...
will die! "
现在,我如何组合所有多行字符串以从左到右获得该连接字符串,如下所示:
My dog dont like that...
you will die!
我尝试的是:
RichTextBox1.Text = String.Join(MyArray(1), MyArray(2))
另一个更现实的例子是,我真正需要的是组合存储在数组中的多行字符串(ASCII字母),但当我尝试将所有字符串连接在一起时,我会得到一个从上到下连接的字符串:
我使用的代码是:
RichTextBox1.Text = String.Join(" ", Characters(70), Characters(77), Characters(70), Characters(76))
这应该能满足你的需要。关键是创建一个列表列表,并在原始数组中的每个项目上拆分换行符 这适用于任意数量的字符串,但每个字符串必须具有相同数量的换行符才能中断 例如:
"Yo \nDon't kill \nMan!"
"dude! \nme bro! "
这将导致异常,因为第二行只有一个\n
要解决此问题,第二行可以更改为:
"Yo \nDon't kill \nMan!"
"dude! \nme bro! \n"
这将为您提供正确的格式
在VB中:
Imports System.Text
Module Module1
Sub Main()
Dim items As List(Of String) = New List(Of String)()
items.Add("My dog\nyou")
items.Add(" dont like that\n")
items.Add(" ... \n will die!")
Dim list As List(Of List(Of String)) = New List(Of List(Of String))
Dim arg() As String = {"\n"}
For Each listItem As String In items
list.Add(listItem.Split(arg, StringSplitOptions.None).ToList())
Next
Dim sb As StringBuilder = New StringBuilder()
For i As Integer = 0 To list(0).Count - 1
For j As Integer = 0 To list.Count - 1
sb.Append(list(j)(i))
Next
sb.Append(Environment.NewLine)
Next
Console.WriteLine(sb.ToString())
Console.ReadKey()
End Sub
End Module
还有C#(我喜欢,但都很好:):
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
列表项=新列表();
项目。添加(“我的狗\n”);
items.Add(“不喜欢那样”\n);
添加(“…\n将死亡!”);
列表=新列表();
items.ForEach(f=>list.Add(f.Split('\n').ToList());
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
这应该能满足您的需要。关键是创建一个列表列表,并在原始数组中的每个项目上拆分换行符
这适用于任意数量的字符串,但每个字符串必须具有相同数量的换行符才能中断
例如:
"Yo \nDon't kill \nMan!"
"dude! \nme bro! "
这将导致异常,因为第二行只有一个\n
要解决此问题,第二行可以更改为:
"Yo \nDon't kill \nMan!"
"dude! \nme bro! \n"
这将为您提供正确的格式
在VB中:
Imports System.Text
Module Module1
Sub Main()
Dim items As List(Of String) = New List(Of String)()
items.Add("My dog\nyou")
items.Add(" dont like that\n")
items.Add(" ... \n will die!")
Dim list As List(Of List(Of String)) = New List(Of List(Of String))
Dim arg() As String = {"\n"}
For Each listItem As String In items
list.Add(listItem.Split(arg, StringSplitOptions.None).ToList())
Next
Dim sb As StringBuilder = New StringBuilder()
For i As Integer = 0 To list(0).Count - 1
For j As Integer = 0 To list.Count - 1
sb.Append(list(j)(i))
Next
sb.Append(Environment.NewLine)
Next
Console.WriteLine(sb.ToString())
Console.ReadKey()
End Sub
End Module
还有C#(我喜欢,但都很好:):
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
列表项=新列表();
项目。添加(“我的狗\n”);
items.Add(“不喜欢那样”\n);
添加(“…\n将死亡!”);
列表=新列表();
items.ForEach(f=>list.Add(f.Split('\n').ToList());
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
阅读每一项。根据导致多行的原因进行拆分。将第一个添加到StringBuilder 1,将第二个添加到StringBuilder 2。完成后,将StringBuilder 2添加到StringBuilder 1中。@Bam感谢您的评论,在此询问之前,我曾尝试拆分字符(vbcrlf),但随后我在一行中得到了完整的连接字符串。您可能需要将每个字符写入十六进制的Int中,以查看使用了什么。请尝试environment.newline.Read。根据导致多行的原因进行拆分。将第一个添加到StringBuilder 1,将第二个添加到StringBuilder 2。完成后,将StringBuilder 2添加到StringBuilder 1中。@Bam感谢您的评论,在此询问之前,我曾尝试拆分字符(vbcrlf),但随后我在一行中得到了完整的连接字符串。您可能需要将每个字符写入十六进制的Int中,以查看使用了什么。试试environment.newline。