Dim txtInput As String = "This is a test. This is also a test. LONGWORDHERE? This works too!"
Dim Punctuation As Char() = {"?"c, "!"c, "."c, ";"c}
Dim Sentences = (From mySent In txtInput.Split(Punctuation))
Dim Avg As Double = Sentences.Average(Function(w) w.Length)
Dim Max As Integer = Sentences.Max(Function(w) w.Length)
Dim Min As Integer = Sentences.Min(Function(w) w.Length)
Я думаю, это ваша лучшая ставка. Есть много способов сделать скин для кошки, но я думаю, что его довольно легко прочитать и он должен быть достаточно быстрым, по крайней мере, в зависимости от размера текста, с которым вы работаете.
Это будет работать только для показанной пунктуации и будет включать пробелы в числе символов.
РЕДАКТИРОВАТЬ: Вы хотели бы получить минимум, который больше нуля по длине. Итак, эта строка станет ...
Dim Min As Integer = (From mySent In txtInput.Split(Punctuation) Where mySent.Length > 0).Min(Function(w) w.Length)
Я не знаю, что вы имеете в виду, когда говорите «полный стоп». Это обратная линия?