gpt4 book ai didi

javascript - 希腊字符串转小写

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:14 24 4
gpt4 key购买 nike

我在将字符串“SΨZΣ”转换为小写时遇到了一些麻烦。

在 C# 中,.ToLower() 和 .ToLowerInvariant() 都给我“sψzσ”作为结果。而 javascript 返回“sψzς”。

经过一些研究,我认为只有当字符“Σ”不在单词的末尾时才应将其翻译为“σ”,在这种情况下,它应该变成“ς”——所以javascript 版本很好。事实上,我在使用 C# 字符串调用外部 API 时遇到错误,而 js 字符串工作正常。

关于如何使 C# 正确降低字符串的任何想法?

最佳答案

不幸的是,在 C# 中没有默认的方法来做到这一点;起初当我看到你的问题时,我猜想这可能是设置文化可以解决的问题,比如:

string s = "SΨZΣ".ToLower(new CultureInfo("el-GR"));

但不幸的是,这不起作用。这个问题比较复杂,因此需要我们自己制定解决方案:

    public string GreekToLower(string s)
{
string lowerString = s.ToLower();

// Matches any 'σ' followed by whitespace or end of string
string returnString = Regex.Replace(lowerString, "σ(\\s+|$)", "ς$1");
return returnString;
}

这会将您的字符串小写,然后查找后跟一个或多个空格或出现在字符串末尾的任何“σ”字符(字符串中的最后一个单词后面可能不会跟空格)和然后将其替换为“ς”,保留它找到的任何现有空白。

正则表达式可能最适合这些类型的场景。我猜您可能还想确保添加或删除希腊语变音符号,例如 Ρύθμιση --> ΡΥΘΜΙΣΗ 等词的音调。这是可以做到的,但它要复杂得多,并且需要更繁重的正则表达式来评估所有情况。

关于javascript - 希腊字符串转小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53684518/

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