Blog ENI : Toute la veille numérique !
Jusqu'à ce soir ! : -25€ dès 75€ sur les livres en ligne, vidéos... code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Manipuler les chaînes de caractères

Les bases

1. Qu’est-ce qu’une chaîne de caractères ?

La gestion des chaînes de caractères est chose courante dans les différents types de langages de programmation. Il s’agit donc d’une partie importante à maîtriser correctement ou, tout du moins, un minimum.

Commençons tout d’abord par définir ce qu’est une chaîne de caractères ou string en anglais.

Le terme string est couramment utilisé dans PowerShell et de manière plus globale sur Windows (par exemple dans la base de registre). En termes informatiques, une chaîne de caractères est un type de données correspondant à une suite ordonnée de plusieurs caractères. Autrement dit, c’est un ensemble de symboles faisant partie d’un jeu de caractères qui est lui-même défini par le code ASCII.

2. Qu’est-ce que le code ASCII ?

Dans un ordinateur, les caractères ne peuvent pas être stockés dans la mémoire. Ceux-ci seront stockés sous forme numérique. Le code ASCII permet de transcrire un caractère en une valeur numérique.

3. Chaîne de caractères en exemple

Une chaîne de caractères peut être une simple ligne entre guillemets :

"Bonjour et bienvenue dans notre livre" 

ou encore :

"Damien Van Robaeys et Jérôme...

Méthodes disponibles pour gérer les chaînes

Différentes méthodes existent pour gérer les chaînes de caractères.

Pour savoir ce qu’est une méthode, consultez le chapitre La gestion des objets.

Pour lister les méthodes, nous utiliserons la cmdlet Get-Member sur un objet String (chaîne de caractères).

<Objet> | Get-Member 

Nous trierons ensuite le résultat du Get-Member sur la propriété Method.

<Objet> | Get-Member -MemberType Method 

Reprenons l’exemple précédent :

$Texte = "Apprenons PowerShell ensemble" 

La cmdlet Get-Member sur la variable $Texte triée sur les méthodes nous donnera le résultat suivant :

PS C:\Users\damien.vanrobaeys> $Texte | get-member -MemberType Method 
 
Name 
---- 
Clone 
CompareTo 
Contains 
CopyTo 
EndsWith 
Equals 
GetEnumerator 
GetHashCode 
GetType 
GetTypeCode 
IndexOf 
IndexOfAny 
Insert 
IsNormalized 
LastIndexOf 
LastIndexOfAny 
Normalize 
PadLeft 
PadRight 
Remove 
Replace 
Split 
StartsWith 
Substring 
ToBoolean 
ToByte 
ToChar 
ToCharArray 
ToDateTime 
ToDecimal 
ToDouble 
ToInt16 
ToInt32 
ToInt64 
ToLower 
ToLowerInvariant 
ToSByte 
ToSingle 
ToString ...

Manipulation des chaînes avec les méthodes

Dans les exemples suivants, nous utiliserons la chaîne de caractères suivante :

$Texte = "Apprenons PowerShell ensemble" 

1. Compter le nombre de caractères

Pour compter le nombre de caractères que contient un élément, nous utiliserons la propriété Length.

$Texte = "Apprenons PowerShell ensemble" 

Le résultat sera 29 caractères.

Cela peut également s’écrire :

("Apprenons PowerShell ensemble").Length 
29 

2. Passer le contenu en majuscules

Dans notre fichier, le contenu est majoritairement en minuscules. Nous allons tout passer en majuscules.

La méthode à utiliser pour cela est ToUpper().

$Texte = "Apprenons PowerShell ensemble" 
$Texte.ToUpper() 
APPRENONS POWERSHELL ENSEMBLE 

Cela peut également s’écrire :

("Apprenons PowerShell ensemble").ToUpper() 
APPRENONS POWERSHELL ENSEMBLE 

3. Passer le contenu en minuscules

Utilisons la chaîne de caractères suivante :

$Texte = "APPRENONS POWERSHELL ENSEMBLE" 

Nous allons tout passer en minuscules.

La méthode à utiliser pour cela est ToLower().

$Texte = "APPRENONS POWERSHELL ENSEMBLE" 
$Texte.ToLower() 
apprenons powershell ensemble 

Cela peut également s’écrire :

("APPRENONS POWERSHELL ENSEMBLE").ToLower() 
apprenons powershell ensemble 

4. Remplacer des caractères

En parcourant les méthodes disponibles, nous remarquons celle nommée Replace. Il s’agit d’une des méthodes les plus utiles pour la gestion des fichiers et chaînes de caractères.

Cette méthode nous permettra de modifier/remplacer un caractère se trouvant dans une chaîne et s’utilise ainsi :

<Chaîne de caractères>.Replace("ancien élément","nouvel élément") 

ou encore :

<Chaîne de caractères> -Replace "ancien élément","nouvel élément" 

Reprenons notre chaîne :

$Texte = "Apprenons PowerShell ensemble" 

Nous souhaitons remplacer le mot ensemble par ensemble, avec joie :

$Texte.replace("ensemble","ensemble, avec joie") 

Ci-dessous...