Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何从除了一个空白换行符之外什么都没有的字符串中删除行?_String_Vb.net_Trim - Fatal编程技术网

String 如何从除了一个空白换行符之外什么都没有的字符串中删除行?

String 如何从除了一个空白换行符之外什么都没有的字符串中删除行?,string,vb.net,trim,String,Vb.net,Trim,我的表单中有两个文本框,启用了多行,还有一个按钮。比如说tB1和tB2tB1和tB2组成组号,并且按钮单击事件将从tB1中删除tB2上存在的所有字符串(数字)。但是,由于所有数字都由新行分隔,因此通过与另一个字符串匹配来替换该字符串会导致之间出现大量空行 示例-tB1值: 一, 二, 三, 四, 五, 六, 七, 八, 九, 十, 示例-tB2值: 三, 七, 八, 我得到的是: 一, 二, [空行] 四, 五, 六, [空行] [空行] 九, 十, 我想要的是: 一, 二, 四, 五, 六,

我的表单中有两个
文本框
,启用了
多行
,还有一个
按钮
。比如说
tB1
tB2
tB1
tB2
组成组号,并且
按钮
单击事件将从
tB1
中删除
tB2上存在的所有字符串(数字)。但是,由于所有数字都由新行分隔,因此通过与另一个字符串匹配来替换该字符串会导致之间出现大量空行

示例-
tB1
值:

一,

二,

三,

四,

五,

六,

七,

八,

九,

十,

示例-
tB2
值:

三,

七,

八,

我得到的是:

一,

二,

[空行]

四,

五,

六,

[空行]

[空行]

九,

十,

我想要的是:

一,

二,

四,

五,

六,

九,

十,

我正在使用代码:

Dim strFix() as String

Private Sub Button1_Click() Handles Button1.Click
    strFix = Split(tB2.Text, vbNewLine)
    For Each str1 as String In strFix
        tb1.Text= tb1.Text.Replace(str1, "")
    Next
End Sub

注意:使用.Trim()无法解决此问题,因为它只删除最后的空行或空格。

String.Replace
无助于删除这些行。您必须创建一个新行列表,而不包含Tb2中显示的行列表

可以使用获取所有行的数组。LINQ简化了任务:

Dim onlyInTb1 = tB1.Lines.Except(tB2.Lines)
tB1.Lines = onlyInTb1.ToArray()
经典的非LINQ方法是使用
列表(字符串)

最后一种方法是不使用
文本框.Lines
-“trick”和
字符串.Split
字符串.Join

Dim tb1Lines = tB1.Text.Split({Environment.NewLine}, StringSplitOptions.None)
Dim tb2Lines = tB2.Text.Split({Environment.NewLine}, StringSplitOptions.None)
Dim onlyInTb1 = tb1Lines.Except( tb2Lines )
tB1.Text = String.Join(Environment.NewLine, onlyInTb1)

String.Replace
无助于删除这些行。您必须创建一个新行列表,而不包含Tb2中显示的行列表

可以使用获取所有行的数组。LINQ简化了任务:

Dim onlyInTb1 = tB1.Lines.Except(tB2.Lines)
tB1.Lines = onlyInTb1.ToArray()
经典的非LINQ方法是使用
列表(字符串)

最后一种方法是不使用
文本框.Lines
-“trick”和
字符串.Split
字符串.Join

Dim tb1Lines = tB1.Text.Split({Environment.NewLine}, StringSplitOptions.None)
Dim tb2Lines = tB2.Text.Split({Environment.NewLine}, StringSplitOptions.None)
Dim onlyInTb1 = tb1Lines.Except( tb2Lines )
tB1.Text = String.Join(Environment.NewLine, onlyInTb1)
我找到了一个适合我的解决方案

Dim strFix()作为字符串
专用子行()
strFix=Split(tB2.Text,vbNewLine)
对于strFix中作为字符串的每个str1
tb1.Text=tb1.Text.Replace(str1,“”)
下一个
strFix=Split(tb1.Text,vbNewLine)
tb1.Text=“”
对于strFix中作为字符串的每个str2
如果str2为“”,则
tb1.Text+=Val(str2).ToString(“00000”)+vbNewLine
如果结束
下一个
tb1.Text=tb1.Text.Trim
端接头
我找到了一个适合我的解决方案

Dim strFix()作为字符串
专用子行()
strFix=Split(tB2.Text,vbNewLine)
对于strFix中作为字符串的每个str1
tb1.Text=tb1.Text.Replace(str1,“”)
下一个
strFix=Split(tb1.Text,vbNewLine)
tb1.Text=“”
对于strFix中作为字符串的每个str2
如果str2为“”,则
tb1.Text+=Val(str2).ToString(“00000”)+vbNewLine
如果结束
下一个
tb1.Text=tb1.Text.Trim
端接头

我认为这是因为For-Each循环的存在。每次循环一个项目时,它都会“加倍”这段代码。

我认为这是因为每个循环都会发生这种情况。每次循环一个项目时,它都会“加倍”此代码。

txtreult.Lines=txtSource.Lines.Where(Function(line)line.Trim()String.Empty)。ToArray()
txtResult.Lines = txtSource.Lines.Where(Function(line) line.Trim() <> String.Empty).ToArray()
txtreult.Lines=txtSource.Lines.Where(函数(行)line.Trim()String.Empty).ToArray()

不,伙计,我不这么认为这是问题所在。事实上,这是因为数组包含一个字符串,而不是新行,所以当我替换字符串时,得到的是替换,将新行单独保留在行中:DNo mate,我认为这不是问题所在。实际上,这是因为数组包含一个字符串,而不是新行,所以当我替换字符串时,得到的是替换,将新行单独保留在行中:dwile这段代码可能会回答这个问题,提供有关此代码回答问题的原因和/或方式的附加上下文可以提高其长期价值。虽然此代码可以回答问题,但提供有关此代码回答问题的原因和/或方式的附加上下文可以提高其长期价值。