Je suis sûr que nous avons tous déjà vu des "ellipses" dans des statuts Facebook (ou ailleurs), et cliqué sur "Montrer plus" pour constater qu'il n'y avait que deux caractères de plus ou moins. Je suppose que c'est dû à une programmation paresseuse, car il existe sûrement une méthode idéale.
Le mien compte des caractères minces [iIl1]
comme "demi-caractères", mais cela ne permet pas de contourner le fait que les ellipses ont l'air stupides lorsqu'elles ne cachent presque aucun caractère.
Existe-t-il une méthode idéale ? Voici la mienne :
/**
* Return a string with a maximum length of <code>length</code> characters.
* If there are more than <code>length</code> characters, then string ends with an ellipsis ("...").
*
* @param text
* @param length
* @return
*/
public static String ellipsis(final String text, int length)
{
// The letters [iIl1] are slim enough to only count as half a character.
length += Math.ceil(text.replaceAll("[^iIl]", "").length() / 2.0d);
if (text.length() > length)
{
return text.substring(0, length - 3) + "...";
}
return text;
}
La langue n'a pas vraiment d'importance, mais je l'ai étiquetée comme étant Java parce que c'est ce que je suis le plus intéressé à voir.
3 votes
Bien que je sois trop paresseux pour apporter une vraie solution maintenant, voici un conseil pour améliorer les liens "show more" : changez-les en "show more (xyz caractères supplémentaires)". Ainsi, je saurai à l'avance si cela en vaut la peine...