gpt4 book ai didi

c# - 为什么在调用 LastIndexOf 时会忽略某些字符?

转载 作者:行者123 更新时间:2023-11-30 13:43:29 27 4
gpt4 key购买 nike

请看一下这些代码:

string str_to_find = "➖➖➖➖➖➖➖➖➖➖\r\n";
string str = "Nancy" + str_to_find;
if (str.EndsWith(str_to_find)) {
str = Remove_Last_String(str, str_to_find);
}

方法是这样的:

public static string Remove_Last_String(string Source, string Find) {
int i = Source.LastIndexOf(Find);
if (i >= 0) {
string new_str = Source.Substring(0, i);
return new_str;
}
else return Source;
}

我想要 Nancy 作为输出。
但是方法返回:
南希➖➖➖➖➖➖➖➖➖➖
这些奇怪的字符有什么问题?我该如何解决?

最佳答案

您正在弄乱不寻常的 Unicode 字符。或者也许他们在逗你。请始终指定字符串比较样式。在您的代码中使用它:

int i = Source.LastIndexOf(Find, StringComparison.Ordinal);

StringComparison.Ordinal 强制比较字符串以忽略当前的区域性设置。显然,文化设置使算法的行为与您/我们想要/期望的不同。

关于c# - 为什么在调用 LastIndexOf 时会忽略某些字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211778/

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