125 votes

C #: Extrait seulement la plupart des n lettres d'une chaîne

Comment puis-je extraire une sous-chaîne composée des six lettres les plus à droite d'une autre chaîne?

Ex: ma chaîne est "PER 343573". Maintenant, je veux extraire uniquement "343573".

Comment puis-je faire ceci?

176voto

Vilx- Points 37939
string SubString = MyString.Substring(MyString.Length-6);

73voto

Stevo3000 Points 12725

Ecrivez une méthode d'extension pour exprimer la fonction Right(n); . La fonction doit traiter les chaînes nulles ou vides renvoyant une chaîne vide, les chaînes inférieures à la longueur maximale renvoyant la chaîne d'origine et les chaînes supérieures à la longueur maximale renvoyant la longueur maximale des caractères les plus à droite.

 public static string Right(this string sValue, int iMaxLength)
{
  //Check if the value is valid
  if (string.IsNullOrEmpty(sValue))
  {
    //Set valid empty string as string could be null
    sValue = string.Empty;
  }
  else if (sValue.Length > iMaxLength)
  {
    //Make the string no longer than the max length
    sValue = sValue.Substring(sValue.Length - iMaxLength, iMaxLength);
  }

  //Return the string
  return sValue;
}
 

43voto

James Points 40024

Probablement plus agréable d'utiliser une méthode d'extension:

 public static class StringExtensions
{
    public static string Right(this string str, int length)
    {
        return str.Substring(str.Length - length, length);
    }
}
 

Usage

 string myStr = "ABCDEPER 343573";
string subStr = myStr.Right(6);
 

27voto

user3813980 Points 1
 using System;

public static class DataTypeExtensions
{
    #region Methods

    public static string Left(this string str, int length)
    {
        str = (str ?? string.Empty);
        return str.Substring(0, Math.Min(length, str.Length));
    }

    public static string Right(this string str, int length)
    {
        str = (str ?? string.Empty);
        return (str.Length >= length)
            ? str.Substring(str.Length - length, length)
            : str;
    }

    #endregion
}
 

Si une erreur ne devrait pas se produire, la valeur null est renvoyée sous forme de chaîne vide, ainsi que les valeurs tronquées ou de base. Utilisez-le comme "testx" .Left (4) ou str.Right (12);

16voto

RvdK Points 10793

MSDN

 String mystr = "PER 343573";
String number = mystr.Substring(mystr.Length-6);
 

EDIT: trop lent ...

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