Dan*_*plo 27
为什么不使用.NET Framework中已有的内置TextInfo.ToTitleCase()方法?
string capitalized = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase("this string should be capitalized!");
Run Code Online (Sandbox Code Playgroud)
Ahm*_*eed 11
编辑:下面添加的VB.NET代码
Dim input As String = "The quick brown fox jumps over the lazy dog"
Dim pattern As String = "\b(\w|['-])+\b"
' With lambda support:
Dim result As String = Regex.Replace(input, pattern, _
Function (m) m.Value(0).ToString().ToUpper() & m.Value.Substring(1))
Run Code Online (Sandbox Code Playgroud)
如果你不能使用lambdas,那么使用MatchEvaluator代替:
Dim evaluator As MatchEvaluator = AddressOf TitleCase
Dim result As String = Regex.Replace(input, pattern, evaluator)
Public Function TitleCase(ByVal m As Match) As String
Return m.Value(0).ToString().ToUpper() & m.Value.Substring(1)
End Function
Run Code Online (Sandbox Code Playgroud)
从MS Word格式的意义上说,它不是真正的标题案例,但足够接近.
string input = "The quick brown fox jumps over the lazy dog";
string pattern = @"\b(\w|['-])+\b";
string result = Regex.Replace(input, pattern,
m => m.Value[0].ToString().ToUpper() + m.Value.Substring(1));
Run Code Online (Sandbox Code Playgroud)
这很好地处理一个字母单词,因为Substring不会在输入中的"A"之类的东西上抛出错误.
.NET内置了对此的支持.有关文档,请参见TextInfo.ToTitleCase.
我的代码包含一些C#的扩展方法.我假设VB.NET也有这些,但我不太了解VB.NET自己转换它们.
public static class StringExtensions {
public static string ToTitleCase(this string value) {
return value.ToTitleCase(CultureInfo.InvariantCulture);
}
public static string ToTitleCase(this string value, CultureInfo culture) {
return value.ToTitleCase(culture.TextInfo);
}
public static string ToTitleCase(this string value, TextInfo textInfo) {
return textInfo.ToTitleCase(value);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
Dim s As String = "your string"
Dim s2 As String = StrConv(s, VbStrConv.ProperCase
MessageBox.Show(s2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31628 次 |
| 最近记录: |