首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除字符串中的双换行符

删除字符串中的双换行符
EN

Stack Overflow用户
提问于 2011-01-21 19:46:18
回答 4查看 2.4K关注 0票数 3

我正在开发一个asp.net web应用程序,我有一个字符串(其中有一个来自数据库的值),其中有多行,我把它放在一个多行类型的TextBox中。(文本区域)

现在的问题是,字符串中有多行,有很多空格。所以我只想删除两个换行符。

我的文本框示例:

+++++++++++++++++++++++++++++++++++++++++++++++++++++

{空}

{空}

‘这是文本框中第3行的一些文本

‘第4行上的一些文本

{空}

‘第6行上的一些文本

{空}

{空}

‘第9行上的一些文本

{空}

+++++++++++++++++++++++++++++++++++++++++++++++++++++

现在我想删除第1行和第2行,以及第7行和第8行

提前感谢

EN

回答 4

Stack Overflow用户

发布于 2011-06-27 07:07:59

以下是解决方案:

代码语言:javascript
运行
复制
'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上进行了测试。

票数 1
EN

Stack Overflow用户

发布于 2011-01-21 20:31:58

这将删除所有空行。

代码语言:javascript
运行
复制
    Dim splt() As Char = New Char() {ControlChars.Lf, ControlChars.Cr}
    Dim lines() As String = TextBox1.Text.Split(splt, StringSplitOptions.RemoveEmptyEntries)
    TextBox1.Lines = lines

这看起来会去掉多个换行符。

代码语言:javascript
运行
复制
    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
EN

Stack Overflow用户

发布于 2011-01-21 22:24:45

我通常这样做的方法是将所有不同的换行符转换为一个我可以管理、去重并转换回vbNewLine的换行符:

代码语言:javascript
运行
复制
    '//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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4758402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档