我正在掃描文本框中的所有字符。然後程序會計算每個字符在文本框中的數量。下面是這增加的所有字符列表中的代碼:計算字符串中每個字符的出現次數,忽略CR
For each c as char in TxtBox
list.add(c)
Next
一切的工作很好,除了這也將添加返回到列表中,這是我不想要的。我想我可以這樣寫:
If c <> chr(10) Then
list.add(c)
End If
...但它不工作。有任何想法嗎?
我正在掃描文本框中的所有字符。然後程序會計算每個字符在文本框中的數量。下面是這增加的所有字符列表中的代碼:計算字符串中每個字符的出現次數,忽略CR
For each c as char in TxtBox
list.add(c)
Next
一切的工作很好,除了這也將添加返回到列表中,這是我不想要的。我想我可以這樣寫:
If c <> chr(10) Then
list.add(c)
End If
...但它不工作。有任何想法嗎?
您還需要排除chr(13)。 10 =新行,13 =回車。
關於C爲char在TxtBox
if c <> chr(10) and c <> chr(13) then
list.add(c)
end if
把那一個鏡頭。
在Windows中,插入LF = LineFeed = Chr(10)和CR =回車= Chr(13)作爲返回字符。
這來自(舊)點陣式打印機。
LINEFEED =下移一行
回車=移動到開始的當前行
它們都包含在Environment.NewLine
財產。
所以,你的代碼應該是這樣的:
If Environment.NewLine.IndexOf(c) < 0 Then
list.Add(c)
End If
這樣,你肯定你的代碼也可以在使用不同字符換行符OS'es。
使用http://msdn.microsoft.com/en-us/library/system.char.iswhitespace.aspx
Char.IsWhiteSpace
好,現在已經有很多答案,但我會做的事情是這樣的,如下所示:
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())
...只是爲了它的樂趣!
您還需要排除chr(13)。 10 =新行,13 =回車。 – Fosco 2011-05-31 19:29:28
也許'Char.IsLetter(Char)'方法有助於如果你只想計算你可以做的字母var countsChars = TxtBox.Where(c => Char.IsLetter(c))。GroupBy(x => x);'它可以返回一個以char爲關鍵字的分組列表。 – Zebi 2011-05-31 19:36:55