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