我正在浏览文本框中的所有字符。然后程序计算文本框中每个字符的数量。这是将所有字符添加到列表中的代码:
For each c as char in TxtBox
list.add(c)
Next
一切正常,除此之外还会在列表中添加返回,这是我不想要的。我以为我可以这样写:
If c <> chr(10) Then
list.add(c)
End If
......但它不起作用。有什么想法吗?
答案 0 :(得分:7)
您还需要排除chr(13)。 10 =新行,13 =回车。
对于每个c作为TxtBox中的char
if c <> chr(10) and c <> chr(13) then
list.add(c)
end if
试一试。
答案 1 :(得分:4)
在Windows中,LF = LineFeed = Chr(10)和CR =回车符= Chr(13)都作为返回字符插入。
这来自(旧的)点阵打印机。
LineFeed =向下移动一行
回车=移动到当前行的开头
它们都包含在Environment.NewLine
属性中。
所以你的代码应该是这样的:
If Environment.NewLine.IndexOf(c) < 0 Then
list.Add(c)
End If
通过这种方式,您可以确保您的代码也适用于使用不同字符换行的操作系统。
答案 2 :(得分:2)
嗯,已经有很多答案,但我的方式如下:
For Each c As Char In TextBox1.Text.Replace(vbCrLf, "")
List.Add(c)
Next
我不知道你的“List”变量是什么,但如果它是List类型,ListBox.ObjectCollection类型或许多其他类型,你可以用以下代码替换这个循环:
List.AddRange(TextBox1.Text.Replace(vbCrLf, "").ToCharArray())
...只为了它的乐趣!
答案 3 :(得分:1)
使用http://msdn.microsoft.com/en-us/library/system.char.iswhitespace.aspx
Char.IsWhiteSpace