我有一个同时包含英语和希伯来语字符的字符串:"Hitachi - היטצ'י:Hitachi – cartel CRT"
第一步:翻转由:
分隔的两个部分
预期结果:"Hitachi – cartel CRT:Hitachi - היטצ'י"
下一步:我想连接以下文本:":אגם:עץ תיוק"
最终预期结果:"Hitachi - cartel CRT:Hitachi - אגם:עץ תיוק:היטצ'י"
实际结果:"Hitachi – cartel CRT:Hitachi - היטצ'י:אגם:עץ תיוק"
这是我当前的代码:
string path = "Hitachi - היטצ'י:Hitachi – cartel CRT";
string[] splittedByColonPath = path.Split(':');
Array.Reverse(splittedByColonPath);
List<string> list = new List<string>(splittedByColonPath);
list.Add("אגם:עץ תיוק:");
string result = String.Join(":", list.ToArray());
关于如何以正确的方式重新安排它,有什么想法吗?
String.Join
运行良好,字符串正是您想要的,由于希伯来语主要是从右到左的,这意味着短语中的第一个单词出现在右边。
根据您想要实现的目标,这可能很好(例如,如果您将其传递给另一个程序,该程序需要用冒号分隔数据-在这种情况下,字符串可能看起来错误,但其他程序会很好地解释它(。但是,如果你想让它看起来像你期望的那样,你必须强制显示算法将冒号视为从左到右。您可以通过将代码更改为来做到这一点
string result = String.Join("u200e:"), list.ToArray());
u200e
是一个从左到右的标记(LRM(,它使任何相邻的标点符号都被视为从左到左。
这样做的缺点是,任何其他解释数据的程序都可能不会期望LRM,并且可能会被它混淆