J'ai lu ceci question pour obtenir le premier caractère de la chaîne. Existe-t-il un moyen d'obtenir les n premiers caractères d'une chaîne de caractères en C# ?
Réponses
Trop de publicités?Vous pouvez utiliser Enumerable.Take comme :
char[] array = yourStringVariable.Take(5).ToArray();
Ou vous pouvez utiliser Chaîne.sous-chaîne .
string str = yourStringVariable.Substring(0,5);
Rappelez-vous que String.Substring
pourrait lever une exception si la longueur de la chaîne est inférieure au nombre de caractères requis.
Si vous voulez récupérer le résultat dans une chaîne de caractères, vous pouvez utiliser :
-
Utilisation du constructeur String et des LINQ's
Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
L'avantage de cette approche est qu'il n'y a pas de vérification préalable de la longueur.
- L'autre moyen est d'utiliser
String.Substring
avec vérification des erreurs
comme :
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
Essayez, s'il vous plaît :
yourString.Substring(0, 5);
Vérifiez Sous-chaîne en C# , Méthode String.Substring
Vous pouvez utiliser Substring(int startIndex, int length)
string result = str.Substring(0,5);
La sous-chaîne commence à une position de caractère spécifiée et a un caractère longueur spécifiée. Cette méthode ne modifie pas la valeur de l'instance actuelle. courante. Au lieu de cela, elle renvoie une nouvelle chaîne de caractères de longueur à partir de la position startIndex dans la chaîne actuelle, MSDN
Que se passe-t-il si la chaîne source comporte moins de cinq caractères ? Vous obtiendrez une exception en utilisant la méthode ci-dessus. Nous pouvons mettre une condition pour vérifier si le nombre de caractères dans la chaîne est supérieur à 5, puis récupérer les cinq premiers par Substring. Notez que j'ai assigné la chaîne source à la variable firstFiveChar. La variable firstFiveChar ne change pas si les caractères sont inférieurs à 5, donc la partie else n'est pas nécessaire.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Personne n'a mentionné comment effectuer des contrôles appropriés lors de l'utilisation de Substring()
donc je voulais contribuer à ce sujet.
Si vous ne voulez pas utiliser Linq
et aller avec Substring()
vous devez vous assurer que votre chaîne de caractères est plus grande que le deuxième paramètre (longueur) de la fonction Substring()
función.
Disons que vous avez besoin des 5 premiers caractères. Vous devriez les obtenir avec une vérification appropriée, comme ceci :
string title = "love"; // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Sans ce contrôle, Substring()
lèverait une exception parce qu'elle itérerait sur des lettres qui ne sont pas là.
Je pense que vous avez compris l'idée...
Le problème avec .Substring(,)
c'est que vous devez être sûr que la chaîne de caractères donnée a au moins la longueur du nombre de caractères demandé, autrement un ArgumentOutOfRangeException
seront lancés.
Solution 1 (utilisation de 'Substring') :
var firstFive = stringValue != null && stringValue.Length > 5 ?
stringValue.Substring(0, 5) :
stringValue;
L'inconvénient d'utiliser .Substring(
est que vous devrez vérifier la longueur de la chaîne donnée.
Solution 2 (en utilisant "Take") :
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Utilisation de "Prendre vous évitera de devoir vérifier la longueur de la chaîne donnée.
- Réponses précédentes
- Plus de réponses