这是字符串:
str="[@PEYear]/?/[@POOL]"
Run Code Online (Sandbox Code Playgroud)
我想根据这个结构替换它:
if (str.Contains("[@PEYear]"))
str = str.Replace("[@PEYear]", "1393");
if (str.Contains("[@POOL]"))
str = str.Replace("[@POOL]", "7");
Run Code Online (Sandbox Code Playgroud)
其结果是:1393 /ف/ 7
但我需要:1393然后是ف然后是7(即使我不能在这里打字:P)
我怎样才能做到这一点?
我将稍微扩展卢卡斯的答案.假设你有这个字符串:
String str = "1393" + "/" + "?" + "/" + "&"
Run Code Online (Sandbox Code Playgroud)
其中"&"="7",因为stackoverflow编辑窗口在有数字时自动修正(尝试用7替换上面的&).评估结果为"1393 /ف/ 7".
这是因为字符串连接功能一遇到从右到左的字符,就会将其余字符附加到此字符的左侧.因此,由于此字符串有8个字符,第6个字符是RTL,因此字符是有序的(如果从零开始)01234765.
现在这个(注意我现在可以输入7而不会被自动修正):
String str = "1393" + "/" + "?" + "\u200e" + "/" + "7"
Run Code Online (Sandbox Code Playgroud)
评估为"1393 /ف/ 7",这是你想要的.因此,如果您正在接收字符串,因此无法直接在代码中修改它,则可以使用Substring方法操作传入字符串以插入\ u200e字符.在这个字符串的情况下:
str = str.Substring(0,6) + "\u200e" + str.Substring(6,2)
Run Code Online (Sandbox Code Playgroud)
会做的.
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |