Vb.net 带hypens的Propercase函数
我的.Net代码中有一个Vb.net 带hypens的Propercase函数,vb.net,casing,Vb.net,Casing,我的.Net代码中有一个ProperCase函数,如下所示 Public Function ProperCase(ByVal strValue As String) As String Dim outString As String = "" Dim badWords As String = "and, at, do, de, du, USA, UK" Dim splitter(1) As Char splitter(0) = " " Dim splitS
ProperCase
函数,如下所示
Public Function ProperCase(ByVal strValue As String) As String
Dim outString As String = ""
Dim badWords As String = "and, at, do, de, du, USA, UK"
Dim splitter(1) As Char
splitter(0) = " "
Dim splitString As String() = strValue.Split(splitter)
For Each s As String In splitString
If badWords.Contains(s) Then
outString = outString & s & " "
Else
outString = outString & StrConv(s, VbStrConv.ProperCase) & " "
End If
Next
Return Trim(outString)
End Function
我需要对双筒名称进行适当的命名,比如Taylor-Smith
,但它的结果是Taylor-Smith
,因为拆分器是一个空格,所以我对代码进行了这样的修改
Public Function ProperCase(ByVal strValue As String) As String
Dim outString As String = ""
Dim badWords As String = "and, at, do, de, du, USA, UK"
Dim splitter(2) As Char
splitter(0) = " "
splitter(1) = "-"
Dim splitString As String() = strValue.Split(splitter)
For Each s As String In splitString
If badWords.Contains(s) Then
outString = outString & s
Else
outString = outString & StrConv(s, VbStrConv.ProperCase)
End If
Next
Return Trim(outString)
End Function
所以我在函数中添加了一个额外的拆分器,但是现在它没有返回带有连字符的值。我删除了突出部分末尾的&“
,但我不确定可以用什么替换它
我尝试添加&拆分器,但即使拆分器是空格,它也总是返回连字符
目前我用修改过的代码得到了这个
TomHart先生
JamieTaylorSmith先生
在代码的第一个版本中,我得到了这个
tomhart先生
杰米·泰勒·史密斯先生
我的预期产出是这样的
tomhart先生
杰米·泰勒·史密斯先生
有什么想法吗?我根本不会改变拆分方法来捕捉连字符。相反,我会看着突出的部分。由更改前的第一个方法生成。可能在循环中的If中
这是一个非常快速的想法,以它为基础。。。不一定是最干净的版本,但应该给你一个想法:
Dim outstring As String = "Michael James-smith"
Dim indexOfCharToCheck As Integer = outstring.LastIndexOf("-"c) + 1
Dim finalString As String = outstring.Substring(0, indexOfCharToCheck) & UCase(outstring(indexOfCharToCheck).ToString) & outstring.Substring(indexOfCharToCheck + 1)
MsgBox(finalString)
样本输入、输出和预期输出将有所帮助。我看不出你有什么问题。@Oded我已经用预期的输出更新了-谢谢你我所追求的