计算字符串中每个字符的出现次数,忽略CR

时间:2011-05-31 19:27:18

标签: .net vb.net

我正在浏览文本框中的所有字符。然后程序计算文本框中每个字符的数量。这是将所有字符添加到列表中的代码:

For each c as char in TxtBox
    list.add(c)
Next

一切正常,除此之外还会在列表中添加返回,这是我不想要的。我以为我可以这样写:

If c <> chr(10) Then
    list.add(c)
End If

......但它不起作用。有什么想法吗?

4 个答案:

答案 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)