IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Actionscript 2 > Les chaînes de caractères
        Comment extraire une partie d'une chaîne de caractères ?
        Comment remplacer toutes les occurences d'un mot (sous-chaîne) dans une chaîne de caractères ?
        Comment supprimer les espaces en début et fin de chaîne ?
        Comment mettre une chaîne de caractères en majuscules/minuscules ?
        Comment inverser une chaîne de caractères ?



Comment extraire une partie d'une chaîne de caractères ?
auteurs : Demco, Grégory Dumas
Il faut pour cela utiliser une des deux méthodes suivantes de la classe String :
  • substr
  • substring
La méthode substr prend en paramètre l'index de départ de la chaîne à extraire ainsi que la longueur de la chaîne à extraire.
La méthode substring prend, elle aussi, comme premier paramètre l'index de départ de la chaîne à extraire. Pas contre, elle prend l'index du premier caractère suivant la chaîne à extraire comme second paramètre.

Cans cet exemple, nous souhaitons extraire l'article "un" de la chaîne.

var sChaineInitiale:String = "Ceci est un exemple";
trace(sChaineInitiale.substr(9,2)); // 9 représentant l'index du u, 2 la longueur du mot extrait
trace(sChaineInitiale.substring(9,11)); // 9 représentant l'index du u, 11 l'index de l'espace qui suit le mot un
Remarque : Comme pour les tableaux, le premier index est 0.


Comment remplacer toutes les occurences d'un mot (sous-chaîne) dans une chaîne de caractères ?
auteur : Grégory Dumas
Il n'existe malheureusement pas de méthode "native" à Flash permettant cela.
Pour remédier à cela, nous allons utiliser les méthodes String.split et Array.join qui permettent respectivement de séparer une chaîne de caractères et de convertir les éléments d'un tableau en chaînes avec un mot de liaison.

Exemple :

function replace(sChaineInitiale:String, sSeparateurARemplacer:String, sSeparateurAInserer:String):String {
    return (sChaineInitiale.split(sSeparateurARemplacer)).join(sSeparateurAInserer);
}
// Usage
var sAncienneChaine:String = "Ceci est un elpmexe intéressant";
var sNouvelleChaine:String = replace(sAncienneChaine, "elpmexe", "exemple");
trace(sNouvelleChaine);

Comment supprimer les espaces en début et fin de chaîne ?
auteur : Grégory Dumas
Cette fonctionnalité n'existe pas de manière native dans Flash.
Cependant les méthodes charCodeAt et substring permettent de réaliser une telle fonction

function trim(s:String):String {
    var nEspace:Number = 32; // Code représentant l'espace
    var nBegin:Number = 0;
    var nEnd:Number = s.length;
    var c:Number = s.charCodeAt(nBegin) ;
    while (c == nEspace) {
        c = s.charCodeAt(++nBegin) ;
    }
    c = s.charCodeAt(nEnd-1); // -1 car les index commencent à 0
    while (c == nEspace) {
        c = s.charCodeAt(--nEnd) ;
    }
    return s.substring(nBegin, nEnd+1); // +1 car le second paramètre est l'index du premier caractère suivant la chaîne à extraire
}
// Usage
var sAncienneChaine:String = "     Ceci est une chaîne avec des espaces inutiles au début et à la fin      ";
var sNouvelleChaine:String = trim(sAncienneChaine);
trace("->"+sNouvelleChaine+"<-");

Comment mettre une chaîne de caractères en majuscules/minuscules ?
auteur : Grégory Dumas
Pour cela, il suffit d'utiliser les méthodes toUpperCase et toLowerCase fournies par la classe String

Exemple :

var s:String = "Une chaîne de CARACTÈRES";
trace(s.toUpperCase());// ==> UNE CHAÎNE DE CARACTÈRES
trace(s.toLowerCase());// ==> une chaîne de caractères
A noter que ces méthodes conservent les accents.


Comment inverser une chaîne de caractères ?
auteur : Grégory Dumas
Pour cela, nous allons utiliser une fonction interressante de la classe Array qui inverse l'ordre des éléments d'un tableau : la fonction reverse.
Cela consiste donc à convertir notre chaîne en tableau, inverser l'ordre de ce tableau, puis joindre ses éléments pour obtenir, à nouveau, une chaîne.

function reverse(s:String):String {
    var a:Array = s.split("");
    a.reverse();
    return a.join("");
}
// Usage
var sMaChaine = "Ceci est ma chaîne !";
trace(reverse(sMaChaine));
// Sortie : ! enîahc am tse iceC


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003-2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.