Méthodes d'extension pour les chaines de caracteres¶
Les méthodes d'extension suivantes s'appliquent aux chaînes de caractères. Elles sont définies dans la classe Developpez.Dotnet.StringExtensions
.
IsNullOrEmpty¶
public static bool IsNullOrEmpty(this string s)
Indique si une chaine de caractères est null
ou vide (raccourci pour la méthode statique String.IsNullOrEmpty
) :
string s1 = null;
string s2 = "";
string s3 = "Hello world";
Console.WriteLine(s1.IsNullOrEmpty()); // true
Console.WriteLine(s2.IsNullOrEmpty()); // true
Console.WriteLine(s3.IsNullOrEmpty()); // false
FormatWith¶
public static string FormatWith(this string format, params object[] args)
Cette méthode formate la chaine avec les valeurs spécifiées (raccourci pour la méthode statique String.Format
) :
string text = "La réponse est {0} !".FormatWith(42); // "La réponse est 42"
Reverse¶
public static string Reverse(this string s)
Cette méthode inverse l'ordre des caractères d'une chaine :
string text = "Hello world !";
string reversed = text.Reverse(); // "! dlrow olleH"
Join¶
public static string Join(this IEnumerable<string> list, string separator)
Cette méthode concatène toutes les chaines de la liste en plaçant le séparateur spécifié entre chaque chaine. C'est un raccourci pour la méthode statique String.Join
, mais qui accepte n'importe quelle séquence de chaines de caractères (String.Join
prend forcément un tableau de chaines).
var list = new List<string>
{
"Hello",
"World",
"!"
};
string text = list.Join(" "); // "Hello World !"
GetLines¶
public static IEnumerable<string> GetLines(this string s)
Cette méthode renvoie toutes les lignes d'une chaine de caractères :
string poem =
@"Les sanglots longs
Des violons
De l'automne
Blessent mon cœur
D'une langueur
Monotone.";
foreach(string line in poem.GetLines())
{
Console.WriteLine("-- {0}", line);
}
/* Sortie :
-- Les sanglots longs
-- Des violons
-- De l'automne
-- Blessent mon cœur
-- D'une langueur
-- Monotone.
*/
RemoveDiacritics¶
public static string RemoveDiacritics(this string s)
Cette méthode élimine les diacritiques (accents, cédilles, etc) d'une chaine de caractères, en les remplaçant par les caractères "de base" :
string text = "L'athlète lança le javelot";
string noDiacritics = text.RemoveDiacritics(); // "L'athlete lanca le javelot"
Cela peut être utile si le texte doit être transcrit dans un encodage qui ne supporte pas ces caractères (ASCII par exemple).
GetMD5Digest¶
Cette méthode renvoie le hash MD5 d'une chaine de caractères, en se basant sur l'encodage ASCII :
string text = "Hello world !";
string hash = text.GetMD5Digest(); // "67c18d060479c5d867c9b91c80edeb4c"
On peut également spécifier un autre encodage en paramètre de cette méthode.
From et To/Take¶
public static SubStringFrom From(this string s, int start)
public static SubStringFrom From(this string s, string start)
public static SubStringFrom From(this string s, string start, bool includeBoundary)
public static string To(this SubStringFrom subStringFrom, int end)
public static string To(this SubStringFrom subStringFrom, string end)
public static string To(this SubStringFrom subStringFrom, string end, bool includeBoundary)
public static string Take(this SubStringFrom subStringFrom, int count)
Ces méthodes permettent d'extraire des sous-chaines d'une façon plus naturelle qu'avec String.Substring
et String.IndexOf
. On peut spécifier un index ou une sous-chaine de départ, ainsi qu'un index ou une sous-chaine de fin. Take permet de spécifier le nombre de caractères à prendre.
Exemple avec des index :
string s = "hello world !";
string s1 = s.From(6).To(10); // "world"
string s2 = s.From(6).Take(5); // "world"
Exemple avec des sous-chaines :
string s = "Hello <b>world</b> !";
string s1 = s.From("<b>").To("</b>"); // "world"
string s2 = s.From("<b>", true).To("</b>", true); // "<b>world</b>"