首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringComparer.OrdinalIgnoreCase的大写/小写转换方法在哪里?

StringComparer.OrdinalIgnoreCase的大写/小写转换方法在哪里?
EN

Stack Overflow用户
提问于 2015-09-12 11:15:36
回答 1查看 499关注 0票数 1

在下面的简单方法中,对于字符串比较器,我调用相应的ToLower()方法。在框架中的某个地方是否有公开的StringComparer.OrdinalIgnoreCase 的案例转换方法?

代码语言:javascript
复制
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方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-12 11:22:42

StringComparison.OrdinalIgnoreCase可以用作string.Equals的参数,为了节省您必须使用ToLower来消除比较中的大小写敏感性。

在C#中:

代码语言:javascript
复制
var string1 = "Hello";
var string2 = "hello";

Console.WriteLine(string1.Equals(string2, StringComparison.OrdinalIgnoreCase));

// Output: true

顺序比较基于字符串中每个字符的数值(Unicode代码点)。如果要以序号比较的格式返回字符串,可以使用以下方法:

代码语言:javascript
复制
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();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32538161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档