Couper une chaîne tous les X caractères
Voici un petit code simple que j\‘ai dû mettre en place pour afficher un texte dynamiquement pour une application Android.
Je devais couper une String tous les 30 caractères mais en faisant attention de ne pas couper en plein milieu d\‘un mot. Comme je suis un type sympa voici le code qui j\‘en suis sûr pourra servir. Le voici en JAVA, JavaScript et PHP.
Je vous explique vite fait le code mais je pense que vous le compredrez facilement.
Je coupe ma String dès que je trouve un espace. Puis je parcours mon tableau en affectant la taille de la String en cours à ma variable taille. En même temps j\’écris le contenu de la case du tableau en cours dans ma variable titre en prenant soin de rajouter l\‘espace que j\‘avais supprimé. Et si lorsque je parcours mon tableau ma taille est supérieur à 30 je rajoute un retour chariot et je réinitialise ma taille à 0. Et c\‘est reparti pour un tour.
Source
JAVA :
int taille = 0; String[] texte = nom.split(\” \“); String titre = \”\“; for(int i = 0; i < texte.length; i++) { taille = taille + texte[i].length(); titre += texte[i] + \” \“;if(taille > 30) { //remplacer par le nombre de caratères titre += \"n\"; taille = 0; }
}
JavaScript :
var taille = 0; var texte = nom.split(\” \“); var titre = \”\“; for(var i = 0; i < texte.length; i++) { taille = taille + texte[i].length(); titre += texte[i] + \” \“;if(taille > 20) { titre += \"\\n\"; taille = 0; }
}
PHP :
$taille = 0; $texte = explode(\” \“, $nom); $titre = \”\“; for($i = 0; $i < count($texte); $i++) { $taille = $taille . strlen($texte[$i]); $titre .= $texte[$i] . \” \“;if($taille > 20) { $titre .= \"<br>\"; $taille = 0; }
}