17 votes

Pourquoi IndexOf ne trouve-t-il pas le caractère N en combinaison avec Y dans la culture hongroise ?

El IndexOf appelée sur une chaîne de caractères renvoie -1 alors qu'il y a bel et bien une correspondance.

string sUpperName = "PROGRAMOZÁSI NYELVEK II. ADA EA+GY. (BSC 08 A)";
string sUpperSearchValue = "N";

sUpperName.IndexOf(sUpperSearchValue); // Returns -1

sUpperSearchValue = "NY";
sUpperName.IndexOf(sUpperSearchValue); // Returns 13

sUpperName[13]; // 78 'N'
sUpperSearchValue[0]; // 78 'N'
sUpperName[13] == sUpperSearchValue[0]; // true

Avez-vous une idée de la raison pour laquelle il trouve "NY" mais pas "N" par lui-même ? Si je recherche toutes les autres lettres de la chaîne, il est capable de les trouver, mais pas la "N" . Le même problème se pose également avec les minuscules.

Si je tape " N" pas de correspondance non plus, à " NY" il le fait.

Photo de cette console here

19voto

Gábor Bakos Points 1144

Dans la culture hongroise .NET, la combinaison de lettres "ny" représente une lettre distincte. Il n'y a donc pas de "N", mais seulement "NY" dans votre exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X