2016-02-07 3 views
0

Я попытался найти информацию об этом, но я нашел только, как подсчитывать вхождения предварительно заданного шаблона строки/строки для поиска. Я просто смешал некоторые данные, которые я узнал из некоторых тусов/форумов, которые я посетил.подсчитывает вхождения каждого символа в строке

я хотел бы знать, если есть альтернативное решение для

Dim qry As System.Collections.Generic.IEnumerable(Of Char) = _ From c As Char In origStr Select c Distinct Dim trimmedStr As String = String.Join("", qry)

, чтобы удалить все дубликаты символов в строке? Приведенный выше код действительно ???? меня. Это мой код для подсчета вхождения символов EACH в строке.

Dim origStr As String 

    Console.Write("ENTER STRING HERE : ") 
    origStr = Console.ReadLine() 
    origStr = LCase(origStr) 

    'remove dup chars 
    Dim qry As System.Collections.Generic.IEnumerable(Of Char) = _ 
     From c As Char In origStr Select c Distinct 
    Dim trimmedStr As String = String.Join("", qry) 

    Dim counts(Len(trimmedStr) - 1) As Integer 
    Dim cnt As Integer = 0 

    origStr = Trim(origStr) 
    trimmedStr = Trim(trimmedStr) 

    Console.WriteLine(trimmedStr) 

    For i = 0 To Len(trimmedStr) - 1 
     For Each k As Char In origStr 
      If (trimmedStr(i) = k) Then 
       cnt += 1 
      End If 
     Next 
     counts(i) = cnt 
     cnt = 0 
     Console.WriteLine(trimmedStr(i) & " => " & counts(i)) 
    Next 

    Console.ReadKey() 

ответ

0

Этот код подсчитывает, сколько раз появляется каждый символ в строке:

Sub Main() 
     Dim text As String = "some random text" 
     Dim charactersInfo = text.GroupBy(Function(c) c).ToDictionary(Function(p) p.Key, Function(p) p.Count()) 

     For Each p In charactersInfo 
      Console.WriteLine("char:{0} times:{1}", p.Key, p.Value) 
     Next 


     Console.ReadLine() 
    End Sub 
+0

благодарит человека! это невероятно коротко и работает! Мне просто нужно узнать, как вы это делаете. еще раз спасибо. – MDB

Смежные вопросы