gpt4 book ai didi

c# - 在 C# 中替换同时包含波斯语和英语字母的字符串

转载 作者:行者123 更新时间:2023-11-30 13:45:56 24 4
gpt4 key购买 nike

这是字符串:

         str="[@PEYear]/ف/[@POOL]"

我想替换它,基于这个结构:

        if (str.Contains("[@PEYear]"))
str = str.Replace("[@PEYear]", "1393");
if (str.Contains("[@POOL]"))
str = str.Replace("[@POOL]", "7");

结果是:1393/å/7

但我需要:1393,然后是 å,然后是 7(即使我不能在这里输入它 :P)

我该怎么做?

最佳答案

我将稍微扩展 Lucas 的回答。假设你有这个字符串:

String str = "1393" + "/" + "ف" + "/" + "&"

其中“&”=“7”,因为当有数字时,stackoverflow 编辑窗口会自动更正(尝试用 7 代替上面的 &)。计算结果为“1393/å/7”。

这是因为字符串连接函数一旦遇到从右到左的字符,就会将其余字符追加到该字符的左侧。所以,由于这个字符串有 8 个字符,并且第 6 个字符是 RTL,所以字符的顺序(如果从零开始)是 01234765。

现在这个(请注意,我现在可以输入 7 而不会自动更正):

String str = "1393" + "/" + "ف" + "\u200e" + "/" + "7"

计算为“1393/́/7”,这就是您想要的。因此,如果您按原样接收字符串,因此无法在代码中直接修改它,则可以使用 Substring 方法来操作传入的字符串以插入\u200e 字符。对于这个字符串:

str = str.Substring(0,6) + "\u200e" + str.Substring(6,2)

会成功的。

关于c# - 在 C# 中替换同时包含波斯语和英语字母的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25098281/

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