选择String上每个单词的前2个字符

时间:2014-10-19 23:17:48

标签: vb.net

我创建了以下功能,但还没能完成。我想返回字符串中每个单词的前2个字符。以下是我到目前为止的情况:

Function SelectWords(ByVal text As String, ByVal maxWords As Integer) As String
    If String.IsNullOrEmpty(text) Then Return String.Empty
    If maxWords <= 0 Then Return String.Empty

    Dim words As String() = text.Split(" "c)

    Return String ''I am stuck here
End Function

2 个答案:

答案 0 :(得分:1)

您没有描述maxwords的用途,也没有描述如何使用a。循环部分:

Dim words = str.Split(" "c)
Dim ret As New StringBuilder    ' in case it is a long string

For Each w As String In words
    If w.Length > 1 Then
        ret.Append(w.Substring(0, 2))
    Else
        ' decide if you want 1
    End If

Next
return ret.toString

答案 1 :(得分:1)

您拥有的代码不会执行您描述的任何操作。请尝试使用此功能。

Function SelectWords(ByVal text As String, ByVal maxWords As Integer) As String
    Dim collection As MatchCollection = Regex.Matches(text, "(\w{2})\w*\b")

    Dim output As New System.Text.StringBuilder
    Dim counter As Integer = 0
    For Each M As Match In collection
        output.Append(M.Groups(1).Value)
        counter += 1
        If counter = maxWords Then
            Exit For
        End If
    Next

    Return output.ToString
End Function