gpt4 book ai didi

.net - 区分日语数字格式

转载 作者:行者123 更新时间:2023-12-05 01:09:46 25 4
gpt4 key购买 nike

在 .NET 中,我需要(如果可能)区分不同类型的日语数字字符串。

在日语中,数字字符串可以用不同的方式书写,例如 "1""1" , "ⅰ" , "Ⅰ" , "①"在半角字符中。

我需要比较像 "MyString1" 这样的字符串和 "MyString①" ,并且出于显而易见的原因,它们不相等。
我想知道是否有办法自动更改"①"输入字符到 "1"自动地?

编辑

我知道显而易见的答案是列出所有可能的“①”类型字符(这些字符的数量有限)并在目标字符串中替换它们。但在我看来,这不是一个非常“好”的方式,也不是非常健壮......所以如果有一种通用的方式,我宁愿使用它。

编辑

抱歉,我之前写过那个机器人 "①""1"被视为数字,但它们不是。 IsNumeric "①"出现错误。所以我想除了使用直接替换之外,实际上可能根本没有办法从一个切换到另一个。

最佳答案

fileformat.info告诉我 circled digits可以分解成正则数字。戳这个in ideone显示 normalization forms这将在 .NET 中实现 KC 或 KD:

var one  = "①";
Console.WriteLine(one);

Console.WriteLine(one.Normalize(NormalizationForm.FormC)); // ①
Console.WriteLine(one.Normalize(NormalizationForm.FormD)); // ①

Console.WriteLine(one.Normalize(NormalizationForm.FormKC)); // 1
Console.WriteLine(one.Normalize(NormalizationForm.FormKD)); // 1

也就是说,需要注意的是,规范化字符串也可能会破坏您希望保持原样的其他字符。

关于.net - 区分日语数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15423581/

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