在下面的简单方法中,对于字符串比较器,我调用相应的ToLower()方法。在框架中的某个地方是否有公开的StringComparer.OrdinalIgnoreCase 的案例转换方法?
Function ToLowerIfCaseInsensitiveComparison(s As String, cmp As StringComparison) As String
Select Case cmp
Case StringComparison.CurrentCultureIgnoreCase
Return s.ToLower()
Case StringComparison.InvariantCultureIgnoreCase
Return s.ToLowerInvariant()
Case StringComparison.OrdinalIgnoreCase
Return ___________________ ' expecting your answers
Case Else
Return s
End Select
End Function(C#或VB -任何你喜欢的。答案可能不会取决于语言。)
更新:我必须纠正自己关于小写转换的问题:在.NET框架中使用String的最佳实践说
在将字符串规范化以进行比较时,使用String.ToUpperInvariant方法而不是String.ToLowerInvariant方法。
发布于 2015-09-12 11:22:42
StringComparison.OrdinalIgnoreCase可以用作string.Equals的参数,为了节省您必须使用ToLower来消除比较中的大小写敏感性。
在C#中:
var string1 = "Hello";
var string2 = "hello";
Console.WriteLine(string1.Equals(string2, StringComparison.OrdinalIgnoreCase));
// Output: true顺序比较基于字符串中每个字符的数值(Unicode代码点)。如果要以序号比较的格式返回字符串,可以使用以下方法:
string GetUnicodeString(string s)
{
StringBuilder sb = new StringBuilder();
foreach (char c in s)
{
sb.Append("\\u");
sb.Append(String.Format("{0:x4}", (int)c));
}
return sb.ToString();
}https://stackoverflow.com/questions/32538161
复制相似问题