Est-ce que le premier char
d'une chaîne de caractères en procédant comme suit ?
MyString.ToCharArray[0]
Est-ce que le premier char
d'une chaîne de caractères en procédant comme suit ?
MyString.ToCharArray[0]
Juste MyString[0]
. Cela utilise le Chaînes de caractères indexeur.
Je n'aurais pas dû passer ces cinq secondes supplémentaires à taper les mots "devrait être suffisant".
La différence entre MyString[0]
y MyString.ToCharArray()[0]
est que le premier traite la chaîne de caractères comme un tableau en lecture seule, tandis que le second traite la chaîne de caractères comme un tableau en lecture seule. ToCharArray()
crée un nouveau tableau. La première méthode sera plus rapide (et plus facile) pour presque tous les cas où elle fonctionnera, mais ToCharArray
peut être nécessaire si vous avez une méthode qui doit accepter un tableau, ou si vous voulez changer le tableau.
Si la chaîne n'est pas connue pour être non nulle et non vide, vous pouvez le faire :
string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]
qui renvoie un char?
de null ou du premier caractère de la chaîne, selon le cas.
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.
4 votes
Qu'avez-vous appris en l'essayant ?
1 votes
@Michael : Il y avait une erreur de compilation. Comment utiliser ToCharArray si ce n'est pas de cette façon ?
3 votes
Pour mémoire,
ToCharArray
es un méthode vous devez d'abord l'exécuter, par exemplechar[] chars = str.ToCharArray();
et ensuite utiliserchar first = chars[0];
. Vous pouvez également le dépecer enstr.ToCharArray()[0];
. Dans tous les cas, vérifiez que la chaîne de caractères n'est pas nulle et qu'elle comporte au moins un caractère - vous pouvez le faire en utilisant la commandeif(!String.IsNullOrEmpty(str))
.1 votes
Craig l'utilisation de ToCharArray est incorrecte. Voir ma réponse.
5 votes
Voulez-vous le premier
char
ou le premier caractère ? Si vous essayez ceci et que cela semble fonctionner, essayez à nouveau avec o qui ont tous deux échoué dans un programme que j'utilisais et qui était écrit en C# avec ce même bug.1 votes
@hippietrail - thx, cela m'a fait lire pour voir si C# avait des fonctions spéciales intégrées pour gérer les complexités de l'Unicode. D'après ce que j'ai pu voir, il faut d'abord appeler
String.Normalize
avec une forme de normalisation spécifiée, pour rendre la chaîne plus facile à analyser, puis écrire un code personnalisé pour extraire chaqueUnicode codepoint
et déterminer quels points de code commencent un caractère, par opposition à ceux qui ajoutent des signes diacritiques ou d'autres éléments de contrôle. Vous trouverez également stackoverflow.com/a/26977869/199364 qui mentionne certaines subtilités du concept caractère .