2011-01-21 40 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。

相關問題