2011-01-21 104 views
3

我正在开发一个asp.net的web应用程序,我有一个字符串(从数据库中有一个值),有多行,我把它放在一个带有多线类型的TextBox中。 (textarea)删除字符串中的两个换行符

现在的问题是,在字符串中是多行,有很多空的空间。所以我想要删除只有两个linebreaks。我的文本框的

例如:

+++++++++++++++++++++++++++++++++++++ ++++++++++++++++
{空}
{空}
'这是在文本框中一些文本第3行
' 线一些文本4
{空}
SOM '第6行
{空}
{空}
一些文本' e第9行
{空}
++++++++++++++++++++++++++++++++++++++ +++++++++++++++
现在不知何故,我想删除线1和2,线7和8

在此先感谢

回答

0

这将摆脱所有的空行。

Dim splt() As Char = New Char() {ControlChars.Lf, ControlChars.Cr} 
    Dim lines() As String = TextBox1.Text.Split(splt, StringSplitOptions.RemoveEmptyEntries) 
    TextBox1.Lines = lines 

这看起来将摆脱多换行

Dim s As String = TextBox1.Text.Replace(Environment.NewLine, ControlChars.Cr) 
    Dim lines As New List(Of String) 
    lines.AddRange(s.Split(New Char() {ControlChars.Cr})) 

    For x As Integer = lines.Count - 1 To 1 Step -1 
     If lines(x) = "" AndAlso lines(x - 1) = "" Then 
      lines.RemoveAt(x) 
     End If 
    Next 
    TextBox1.Lines = lines.ToArray 
0

的方式,我通常做,这是把所有的各种线分解成一个一个,我可以管理的,去然后转换回vbNewLine:

'//Convert all line break types to vbCr/ASCII 13 
    T = T.Replace(vbNewLine, vbCr).Replace(vbLf, vbCr) 
    '//Loop until all duplicate returns are removed 
    Do While T.Contains(vbCr & vbCr) 
     T = T.Replace(vbCr & vbCr, vbCr) 
    Loop 
    '//Check to see if the string has one at the start to remove 
    If T.StartsWith(vbCr) Then T = T.TrimStart(Chr(13)) 

    '//Convert back to standard windows line breaks 
    T = T.Replace(vbCr, vbNewLine) 
0

以下代码在开始时删除双空行,并且还在文本框中的任何位置双击空行。

Dim myText as String = TextBox1.Text 
myText = Regex.Replace(myText, "^(\r\n\r\n)(.*)", "$2") 
myText = Regex.Replace(myTextt, "(.*\r\n)(\r\n\r\n)(.*)", "$1$3") 
TextBox1.Text = myText 

在该示例中给定的,这将除去线路1和2,和线7和8

1

下面是解:

'now rebuild your example string 
Dim Empty As String = Chr(13) & Chr(10) 

Dim Sb As New System.Text.StringBuilder 
Sb.Append("+++++++++++++++++++++++++++++++++++++++++++++++++++++") 
Sb.Append(Empty) 
Sb.Append(Empty) 
Sb.Append(Empty & "This is some text in the textbox on line 3") 

Sb.Append(Empty & "some text on line 4") 
Sb.Append(Empty) 
Sb.Append(Empty & "some text on line 6") 
Sb.Append(Empty) 
Sb.Append(Empty) 
Sb.Append(Empty & "some text on line 9") 
Sb.Append(Empty) 
Sb.Append(Empty) 
Sb.Append("+++++++++++++++++++++++++++++++++++++++++++++++++++++") 
Dim YourString As String = Sb.ToString 
MessageBox.Show(YourString) 

'now replace the double empty 
Dim result As String 
result = YourString.Replace(Empty & Empty & Empty, Empty) 
MessageBox.Show(result) 

注:该解决方案已用Visual Studio 2010测试OK。

相关问题