c# - ejemplos - "Aaaa".StartsWith("aaa") devuelve falso
startswith python (1)
Esto es ciertamente debido a su cultura actual. Usted puede estar en danés en el que aa se considera una letra. Si intentas cambiar la cultura ... o el caso, funcionará.
Creo que recuerdo un comportamiento similar con las culturas húngaras y las asociaciones de letras.
Echa un vistazo a String StartsWith () problema con texto danés
Ejemplo:
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"));
}
}
}
Esto imprime lo que afirma el OP.
Si esto no es un error, ¿puede alguien explicar la razón detrás de este comportamiento? De hecho, parece que cada número impar de letras devolverá falso:
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"));
produce el siguiente resultado cuando se ejecuta en un sistema danés:
True
False
True
False
True
False