web-dev-qa-db-fra.com

Comment obtenir les cinq premiers caractères d'une chaîne

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 #?

94
Knight Wing

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. 

  • L'autre façon est d'utiliser String.Substring avec vérification d'erreur

comme:

string firstFivCharWithSubString = 
    !String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
    ? yourStringVariable.Substring(0, 5)
    : yourStringVariable;
169
Habib

S'il vous plaît essayez:

yourString.Substring(0, 5);

Vérifiez Sous-chaîne C # , Méthode String.Substring

41
TechDo

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);
30
Adil

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 ...

21
ilter

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.

14
Steven

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
11
Viacheslav Avsenev

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.

6
alikerim
string str = "GoodMorning"

string strModified = str.Substring(0,5);
5
Rajeev Kumar

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();
2
ChrisF

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);
1
saleem kalro

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;
    }
}
1
Peter

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) : ""
0
Yasir Iqbal

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

0
sjokkogutten

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
0
Spegeli

Veuillez essayer ce code lorsque str est inférieur à 5.

string strModified = str.Substring(0,str.Length>5?5:str.Length);
0
Saket Yadav