gpt4 book ai didi

c# - 将字符串转换为序号大写或小写

转载 作者:可可西里 更新时间:2023-11-01 07:59:01 24 4
gpt4 key购买 nike

是否可以将字符串转换为序号大写或小写。类似不变量。

string upperInvariant = "ß".ToUpperInvariant();
string lowerInvariant = "ß".ToLowerInvariant();
bool invariant = upperInvariant == lowerInvariant; // true

string upperOrdinal = "ß".ToUpperOrdinal(); // SS
string lowerOrdinal = "ß".ToLowerOrdinal(); // ss
bool ordinal = upperOrdinal == lowerOrdinal; // false

如何实现 ToUpperOrdinal 和 ToLowerOrdinal?

编辑:如何获得序数字符串表示?同样,如何获得不变的字符串表示?也许这是不可能的,因为在上述情况下它可能是模棱两可的,至少对于序数表示而言。

编辑2:

string.Equals("ß", "ss", StringComparison.InvariantCultureIgnoreCase); // true

但是

"ß".ToLowerInvariant() == "ss"; // false

最佳答案

我认为 .NET Framework 或 .NET Core 中不存在此功能。最接近的是 string.Normalize() , 但它缺少成功完成此操作所需的 case fold 选项。

此功能存在于 ICU project 中(在 C/Java 中可用)。您所追求的功能是 unorm2.h C 或 Normalizer2 中的文件Java 中的类。 Example usage in Javarelated test .

据我所知,Normalizer2 有 2 个实现已移植到 C#:

  • icu-dotnet (ICU4C 的 C# 包装器库)
  • ICU4N (ICU4J 的完全托管端口)

Full Disclosure: I am a maintainer of ICU4N.

关于c# - 将字符串转换为序号大写或小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com