Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在字符串中间大写某些名称_Vb.net - Fatal编程技术网

Vb.net 在字符串中间大写某些名称

Vb.net 在字符串中间大写某些名称,vb.net,Vb.net,当前使用的代码位于下面。该代码查找O'Mac和Mc,如果在字符串中找到,则将其后面的第一个字母大写。 我们遇到了一个问题,比如像梅西这样的名字也被大写为梅西。我正在寻找一些关于如何应对这种情况的帮助。我知道它很可能会让代码检查字符串在Mc/Mac/O'之后是否大于2个字符 任何帮助将不胜感激,因为我是新的编码 Pos = InStr(Trim(lName), " ") If Pos > 0 Then Return CapitaliseName(Tri

当前使用的代码位于下面。该代码查找O'Mac和Mc,如果在字符串中找到,则将其后面的第一个字母大写。 我们遇到了一个问题,比如像梅西这样的名字也被大写为梅西。我正在寻找一些关于如何应对这种情况的帮助。我知道它很可能会让代码检查字符串在Mc/Mac/O'之后是否大于2个字符

任何帮助将不胜感激,因为我是新的编码

Pos = InStr(Trim(lName), " ")
        If Pos > 0 Then
            Return CapitaliseName(Trim(Left(lName, Pos))) & " " & CapitaliseName(Mid(lName, Pos + 1))
            Exit Function
        End If

        lName = LCase(Trim(lName))

        Pos = InStr(lName, "mac")
        If Pos > 0 Then Len = 3
        If Pos = 0 Then
            Pos = InStr(lName, "mc")
            Len = 2
        End If
        If Pos = 0 Then
            Pos = InStr(lName, "o'")
            Len = 2
        End If

        If Pos = 0 Then
            CapitaliseName = StrConv(lName, VbStrConv.ProperCase)
        Else
            CapitaliseName = StrConv(Left(lName, Pos - 1), VbStrConv.ProperCase) &
                            StrConv(Mid(lName, Pos, Len), VbStrConv.ProperCase) &
                            StrConv(Mid(lName, Pos + Len), VbStrConv.ProperCase)
        End If

如果
Macmillan
正确地产生
Macmillan
,我宁愿把
MacEy
作为不希望的输出。这里有一些方法,你对
Mcgrath
Macgrath
Mcey
的输出是什么?