Existe-t-il quelque chose comme une sous-chaîne C # pour Java? Je crée une application mobile pour Blackberry et, en raison de contraintes d'écran, je ne peux me permettre de montrer 13 lettres plus trois points pour un Ellipsis.
Toute suggestion sur la façon d'accomplir cela?
J'ai besoin de Java nue et non d'une astuce car je doute qu'un appareil mobile ait accès à une infrastructure complète. Au moins dans mon expérience de travail avec Java ME il y a un an.
Vous pouvez faire exactement ce que vous voulez avec String.substring()
.
String str = "please truncate me after 13 characters!";
if (str.length() > 16)
str = str.substring(0, 13) + "..."
String foo = someString.substring(0, Math.min(13, someString.length()));
Edit: Juste pour référence générale, à partir de Guava 16.0, vous pouvez faire:
String truncated = Ascii.truncate(string, 16, "...");
tronquer à une longueur maximale de 16 caractères avec un Ellipsis.
De côté
Notez, cependant, que tronquer une chaîne pour l'affichage par caractère n'est pas un bon système pour quoi que i18n doive être pris en compte. Il y a (au moins) quelques problèmes différents:
e
suivie d'un caractère de combinaison qui met l'accent sur cette e
.)Pour ces raisons (et d'autres), j'ai cru comprendre que la meilleure pratique de troncature pour l'affichage dans une interface utilisateur consiste à supprimer le rendu du texte au bon endroit à l'écran plutôt que de tronquer la chaîne sous-jacente.
String str = "This is Mobile application."
System.out.println(str.subSequence(0, 13)+"...");