"aaaa".StartsWith("aaa") returns false

本文关键字:quot returns false StartsWith aaaa aaa | 更新日期: 2023-09-27 18:05:11

如果这不是一个bug,谁能解释一下这个行为背后的原因?事实上,似乎每个奇数的字母都会返回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

"aaaa".StartsWith("aaa") returns 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声明的内容