Voici une petit classe que j'ai développé pour y regrouper mes traitements sur les chaînes de caractères. Vous y trouverez les méthodes statiques replace, lTrim, rTrim, trim, stringToArray, arrayToString et reverse ...

Si vous avez des idées de méthodes (ou même des implémentations) à me suggérer, je suis preneur !!! :D

/*************************
* StringUtils.as v0.1
* Fonction "utilitaires" de traitement
* des chaînes de caractères
*-------------------
* LAlex
* <a href="http://www.lalex.com/">http://www.lalex.com/</a>
**************************/

class com.lalex.utils.StringUtils {
        // Caractères considérés comme caractères d'espacement
        private static var SPACE_CHARS:Array = [" ","
"
,"
"
,"\t"];
        // StringUtils.replace
        // Cherche une suite de caractères dans une chaine
        // pour la remplacer par une autre
        // ----------
        // $str : Chaine de caractêres à traiter
        // $search : Chaine de caractère à chercher
        // $replace : Chaine de caractère de remplacement
        public static function replace($str:String, $search:String, $replace:String):String {
                // Debut de la recherche courante
                var stsearch:Number = 0;
                // Position trouvée
                var fnd:Number = -1;
                // Retour
                var ret:String = "";
                // Tant qu'on trouve la chaine recherchée
                while ((fnd = $str.indexOf($search,stsearch)) != -1) {
                        // On rajoute du début de la recherche à la position
                        // trouvée, puis on rajoute la chaine de remplacement
                        ret += $str.slice(stsearch,fnd) + $replace;
                        // On déplace le début de la recherche suivante
                        stsearch = fnd+$search.length;
                }
                // On rajoute la fin de la chaine
                ret += $str.slice(stsearch,$str.length);
                // On retourne le résultat
                return ret;
        }
        // StringUtils.lTrim
        // On supprime tous les caractères d'espacement
        // au début de la chaine de caractères.
        public static function lTrim($str:String):String {
                // Boucle infinie (arretée par les return)
                while (true) {
                        // Si la chaine est vide, on la retourne
                        if ($str == "") {
                                return $str;
                        }
                        // On boucle sur les espaces
                        var numSpace:Number = SPACE_CHARS.length;
                        while (--numSpace >= 0) {
                                // Si un espace est trouvé, on l'enlève de la chaîne
                                // et on arrête la boucle.
                                if ($str.charAt(0) == SPACE_CHARS[numSpace]) {
                                        $str = $str.slice(1);
                                        break;
                                }
                        }
                        // Si numSpace est négatif, la boucle entière a étée
                        // faite, donc aucun espace n'est trouvé.
                        // On retourne donc la chaine.
                        if (numSpace < 0) {
                                return $str;
                        }
                }
        }
        // StringUtils.rTrim
        // On supprime tous les caractères d'espacement
        // à la fin de la chaine de caractères.
        public static function rTrim($str:String):String {
                // On stocke la longueur de la chaine
                // pour éviter d'y accéder plusieurs fois
                var len:Number = $str.length-1;
                // Boucle infinie (arretée par les return)
                while(true) {
                        if ($str == "") {
                                return $str;
                        }
                        // Si la chaine est vide, on la retourne
                        var numSpace:Number = SPACE_CHARS.length;
                        while (--numSpace >= 0) {
                                // Si un espace est trouvé, on l'enlève de la chaîne
                                // et on arrête la boucle. On retire 1 à la longueur
                                // de la chaîne.
                                if ($str.charAt(len) == SPACE_CHARS[numSpace]) {
                                        $str = $str.slice(0,-1);
                                        len--;
                                        break;
                                }
                        }
                        // Si numSpace est négatif, la boucle entière a étée
                        // faite, donc aucun espace n'est trouvé.
                        // On retourne donc la chaine.
                        if (numSpace < 0) {
                                return $str;
                        }
                }
        }
        // StringUtils.trim
        // On supprime tous les caractères d'espacement
        // au début et à la fin de la chaine de caractères.
        public static function trim($str:String):String {
                return rTrim(lTrim($str));
        }
        // StringUtils.stringToArray
        // Convertit une chaine de caractères en tableau
        // contenant un caractère par index.
        public static function stringToArray($str:String):Array {
                return $str.split("");
        }
        // StringUtils.arrayToString
        // Transforme un tableau en chaine de caractère
        // constituée de la concatenation de ses éléments.
        public static function arrayToString($ar:Array):String {
                return "" + $ar.join("");
        }
        // StringUtils.reverse
        // Inverse l'ordre des caractères d'une chaine
        public static function reverse($str:String):String {
                var rev:String = "";
                var i:Number = $str.length;
                while (--i >= 0) {
                        rev += $str.charAt(i);
                }
                return rev;
                /*
                --- Autre implémentation
                --- sans doute moins rapide
                var ar:Array = $str.split("");
                ar.reverse();
                return ar.join(""); */

        }
}

::Télécharger StringUtils.zip::