“AAAA” .StartsWith(“AAA”)返回false(“aaaa”.StartsWith

2019-08-17 20:15发布

如果这是不是一个错误,任何人都可以再解释这种行为背后的原因是什么? 事实上,它似乎每一个奇数的信件将返回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

Answer 1:

这当然是由于目前的文化。 你可能会在丹麦语中AA被认为是一个字母。 如果试图改变企业文化..或的情况下,应当编制。

我想我还记得与匈牙利的文化和信协会类似的行为

看看到字符串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索赔。



文章来源: “aaaa”.StartsWith(“aaa”) returns false