gpt4 book ai didi

c# - 用重音字符反转字符串?

转载 作者:IT王子 更新时间:2023-10-29 04:21:09 24 4
gpt4 key购买 nike

所以我看到了 Jon 的双向飞碟 video并且有一个代码示例:

é 应该有问题 - 在反转之后但我猜它在 .net2 上失败了(恕我直言),无论如何它对我有用并且我确实看到了正确的 反转字符串。

char[] a="Les Misérables".ToCharArray();
Array.Reverse(a);
string n= new string(a);
Console.WriteLine (n); //selbarésiM seL

但我更进一步:

在希伯来语中有“Alef”字符:א

我可以添加标点符号,例如:אֳ(我相信它由 2 个字符组成 - 但显示为一个字符。)

但现在看看会发生什么:

char[] a="Les Misאֳrables".ToCharArray();
Array.Reverse(a);
string n= new string(a);
Console.WriteLine (n); //selbarֳאsiM seL

有一个 split ......

我能理解为什么会这样:

Console.WriteLine ("אֳ".Length); //2

所以我想知道在 C# 中是否有解决此类问题的方法(或者我应该构建自己的机制....)

最佳答案

问题是 Array.Reverse 不知道 char 值的某些序列可能会组合形成单个字符或“字素”,因此应该'被逆转。您必须使用能够理解 Unicode 组合字符序列的东西,例如 TextElementEnumerator :

// using System.Globalization;

TextElementEnumerator enumerator =
StringInfo.GetTextElementEnumerator("Les Misאֳrables");

List<string> elements = new List<string>();
while (enumerator.MoveNext())
elements.Add(enumerator.GetTextElement());

elements.Reverse();
string reversed = string.Concat(elements); // selbarאֳsiM seL

关于c# - 用重音字符反转字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15029238/

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