Można użyć String#substring()
if(str != null && str.length() > 8) {
return str.substring(0, 8) + "...";
} else {
return str;
}
Można jednak uczynić trybie dopuszczającym ty przekazać maksymalną liczbę znaków, które można wyświetlić. Wówczas elipsa byłaby wcięta tylko wtedy, gdyby podana szerokość nie była wystarczająca dla struny.
public String getShortString(String input, int width) {
if(str != null && str.length() > width) {
return str.substring(0, width - 3) + "...";
} else {
return str;
}
}
// abcdefgh...
System.out.println(getShortString("abcdefghijklmnopqrstuvwxyz", 11));
// abcdefghijk
System.out.println(getShortString("abcdefghijk", 11)); // no need to trim
Zazwyczaj większy sens wyciąć tak, że długość nie będzie więcej niż N z wielokropkiem. Różnica polega na tym, że w tobie 9, 10 lub 11 ciągów znaków zostałoby przyciętych, chociażby były krótsze lub miały taką samą długość. –