我试图用多行文本框解析一个地址,如下所示:
我需要将每一行放到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
但是,在检查跟踪输出时,仍然存在其他换行符。调试器也显示它们的存在:
我认为这是因为Environment.NewLine
不是分隔符的正确选择。如果是这样,为什么? - 这显然是一个新的路线!
这里真正发生了什么,什么是正确的解决方案?
更新
将字符串的内容与CHR(n)等效表示进行比较,以下输出显示框中包含的实际,Chr(10)
加Chr(13)
:
答案 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