我正在开发一个asp.net Web应用程序,我有一个字符串(在数据库中有一个值),有多行,我放在一个带有mulitline类型的TextBox中。 (textarea的)
现在的问题是,字符串中有多行,空格很多。所以我希望只删除双线换行。
我的文本框示例:
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++
{}空
{}空
'这是第3行文本框中的一些文字
'第4行的一些文字
{}空
'第6行的一些文字
{}空
{}空
'第9行的一些文字
{}空
++++++++++++++++++++++++++++++++++++++++++++++++++ +++
现在我想以某种方式删除第1行和第2行,第7行和第8行
提前致谢
答案 0 :(得分: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测试。
答案 1 :(得分: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
答案 2 :(得分: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)
答案 3 :(得分: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行。