我正在开发一个asp.net web应用程序,我有一个字符串(其中有一个来自数据库的值),其中有多行,我把它放在一个多行类型的TextBox中。(文本区域)
现在的问题是,字符串中有多行,有很多空格。所以我只想删除两个换行符。
我的文本框示例:
+++++++++++++++++++++++++++++++++++++++++++++++++++++
{空}
{空}
‘这是文本框中第3行的一些文本
‘第4行上的一些文本
{空}
‘第6行上的一些文本
{空}
{空}
‘第9行上的一些文本
{空}
+++++++++++++++++++++++++++++++++++++++++++++++++++++
现在我想删除第1行和第2行,以及第7行和第8行
提前感谢
发布于 2011-06-27 07:07:59
以下是解决方案:
'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 Studio2010上进行了测试。
发布于 2011-01-21 20:31:58
这将删除所有空行。
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
发布于 2011-01-21 22:24:45
我通常这样做的方法是将所有不同的换行符转换为一个我可以管理、去重并转换回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)
https://stackoverflow.com/questions/4758402
复制相似问题