J'ai lu cette question pour obtenir le premier caractère de la chaîne. Existe-t-il un moyen d'obtenir le n premier nombre de caractères d'une chaîne en C #?
Vous pouvez utiliser Enumerable.Take like:
char[] array = yourStringVariable.Take(5).ToArray();
Ou vous pouvez utiliser String.Substring .
string str = yourStringVariable.Substring(0,5);
Rappelez-vous que String.Substring
peut générer une exception si la longueur de la chaîne est inférieure aux caractères requis.
Si vous voulez récupérer le résultat sous forme de chaîne, vous pouvez utiliser:
Utiliser le constructeur de chaînes et le Take
de LINQ
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
Le plus avec l'approche est de ne pas vérifier la longueur avant la main.
String.Substring
avec vérification d'erreurcomme:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
S'il vous plaît essayez:
yourString.Substring(0, 5);
Vérifiez Sous-chaîne 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 possède un longueur spécifiée. Cette méthode ne modifie pas la valeur du courant exemple. Au lieu de cela, il retourne une nouvelle chaîne avec des caractères de longueur à partir de la position startIndex dans la chaîne en cours, MSDN
Que se passe-t-il si la chaîne source contient moins de cinq caractères? Vous obtiendrez une exception en utilisant la méthode ci-dessus. On peut mettre condition pour vérifier si le nombre de caractères dans la chaîne est supérieur à 5, puis obtenir les cinq premiers à la sous-chaîne Remarque J'ai affecté la chaîne source à la variable firstFiveChar. Le firstFiveChar ne change pas si les caractères sont inférieurs à 5, alors une autre partie n'est pas requise.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Personne n’a indiqué comment faire les vérifications appropriées lors de l’utilisation de Substring()
; je voulais donc contribuer à cela.
Si vous ne voulez pas utiliser Linq
et utiliser Substring()
, vous devez vous assurer que votre chaîne est plus grande que le second paramètre (longueur) de la fonction Substring()
.
Disons que vous avez besoin des 5 premiers caractères. Vous devriez les obtenir avec un chèque approprié, comme ceci:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Sans cette vérification, la fonction Substring()
lèverait une exception car elle itérerait à travers des lettres absentes.
Je pense que vous avez l'idée ...
Le problème avec .Substring(,)
est que vous devez vous assurer que la chaîne donnée a au moins la longueur du nombre de caractères demandé, sinon une ArgumentOutOfRangeException
sera renvoyée.
Solution 1 (en utilisant 'Substring'): /
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
L'inconvénient de l'utilisation de .Substring(
est que vous devez 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;
Utiliser 'Take' vous évitera de devoir vérifier la longueur de la chaîne donnée.
Je ne sais pas pourquoi quelqu'un a mentionné cela… .. Mais c'est le moyen le plus simple et le plus simple d'y parvenir.
string str = yourString.Remove(n);
n
- nombre de caractères dont vous avez besoin
Exemple
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Ajoutez cinq caractères d'espacement, puis coupez les cinq premiers et coupez le résultat. Le nombre d'espaces que vous ajoutez doit correspondre au nombre que vous coupez. Assurez-vous d'inclure la parenthèse avant .Substring(0,X)
ou vous n'ajouterez rien.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Avec cette technique, vous n’aurez plus à vous soucier de la variable ArgumentOutOfRangeException
mentionnée dans d’autres réponses.
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Utilisez la fonction PadRight pour éviter que la chaîne ne soit trop courte, saisissez ce dont vous avez besoin puis coupez les espaces à la fin, en une seule instruction.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
Pour obtenir le n premier nombre de caractères d'une chaîne en C #
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
Vous trouverez ci-dessous une méthode d'extension qui vérifie si une chaîne est plus grosse que ce qui était nécessaire et la raccourcit au nombre maximal de caractères défini, puis ajoute '...'.
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
Si nous ne voulons que les 5 premiers caractères d'un champ, cela peut être réalisé avec l'attribut de gauche
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Ou vous pouvez utiliser String.ToCharArray () .
Il prend int startindex
et and int length
en tant que paramètres et renvoie un char[]
new string(stringValue.ToCharArray(0,5))
Vous devez toujours vous assurer que la chaîne a la bonne longueur, sinon elle jettera une ArgumentOutOfRangeException
J'utilise:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
ou alternative si vous voulez aussi vérifier les espaces (au lieu de Null uniquement):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
Veuillez essayer ce code lorsque str est inférieur à 5.
string strModified = str.Substring(0,str.Length>5?5:str.Length);