“aaaa”.StartsWith(“aaa”)返回false
如果这不是一个错误,那么任何人都可以解释这种行为背后的原因吗? 事实上,似乎每个奇数个字母都会返回false:
string test = "aaaaaaaaaaaaaaaaaaaa"; Console.WriteLine(test.StartsWith("aa")); Console.WriteLine(test.StartsWith("aaa")); Console.WriteLine(test.StartsWith("aaaa")); Console.WriteLine(test.StartsWith("aaaaa")); Console.WriteLine(test.StartsWith("aaaaaa")); Console.WriteLine(test.StartsWith("aaaaaaa"));
在丹麦系统上执行时输出后的输出:
True False True False True False
这当然归功于您目前的文化。 您可能是丹麦语,其中aa被视为一封信。 如果你尝试改变文化..或案例,它应该工作。
我想我记得匈牙利文化和字母联想的类似行为
看看使用丹麦文本的String StartsWith()问题
例:
using System; using System.Globalization; namespace Demo { public static class Program { public static void Main(string[] args) { System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK"); System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture; string test = "aaaaaaaaaaaaaaaaaaaa"; Console.WriteLine(test.StartsWith("aa")); Console.WriteLine(test.StartsWith("aaa")); Console.WriteLine(test.StartsWith("aaaa")); Console.WriteLine(test.StartsWith("aaaaa")); Console.WriteLine(test.StartsWith("aaaaaa")); Console.WriteLine(test.StartsWith("aaaaaaa")); } } }
这打印出OP声称的内容。