Estoy seguro de que todos hemos visto elipsis en los estados de Facebook (o en otro lugar), y pulsado "Mostrar más" y solo hay otros 2 caracteres más o menos. Supongo que esto se debe a la programación perezosa, porque seguramente hay un método ideal.Método ideal para truncar una cadena con puntos suspensivos
La mía cuenta los caracteres delgados [iIl1]
como "caracteres medios", pero esto no pasa por alto las elipsis "se ven tontas cuando apenas ocultan los caracteres".
¿Existe un método ideal? Aquí está el mío:
/**
* 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;
}
El lenguaje en realidad no importa, pero etiquetado como Java porque eso es lo que más me interesa ver.
Mientras que soy demasiado perezoso para aportar una solución real ahora, he aquí una sugerencia para mejorar los enlaces 'mostrar más': cambiarlos a 'mostrar más (xyz caracteres adicionales)'. De esa forma sé de antemano si valdrá la pena ... –