经解析的多行TextBox字符串包含不需要的换行符

时间:2014-10-15 10:16:30

标签: asp.net

我试图用多行文本框解析一个地址,如下所示:

enter image description here

我需要将每一行放到List(Of String)内的唯一字符串中,并删除用户输入的分隔符(",")。使用非常简单:

Dim a As String = txt.Text.Trim.Replace(",", String.Empty)
Dim l As List(Of String) = a.Split(Environment.NewLine).ToList()
For Each s As String In l
    Trace.Warn(String.Format("Parsed {0}: {1}", l.IndexOf(s).ToString, s))
Next

但是,在检查跟踪输出时,仍然存在其他换行符。调试器也显示它们的存在:

enter image description here

我认为这是因为Environment.NewLine不是分隔符的正确选择。如果是这样,为什么? - 这显然是一个新的路线!

这里真正发生了什么,什么是正确的解决方案?

更新

将字符串的内容与CHR(n)等效表示进行比较,以下输出显示框中包含的实际Chr(10)Chr(13)

enter image description here

1 个答案:

答案 0 :(得分:0)

似乎Chr(10)Chr(13)的行为彼此独立。解决方案是Split使用Environment.NewLine,然后迭代列表并手动删除剩余的Chr(10)个字符。

Dim a As String = txt.Text.Trim.Replace(",", String.Empty)
Dim l As List(Of String) = a.Split(Environment.NewLine).ToList()
For i As Integer = 0 To l.Count - 1
    l(i) = l(i).Replace(Chr(10), String.Empty)
Next