Ответ 1
Используйте подстроку и конкатенацию:
if(str.length() > 50)
strOut = str.substring(0,7) + "...";
Я хотел бы вырезать строку Java, когда эта длина строки > 50, и добавить "..." в конце строки.
Пример:
У меня есть следующая строка Java:
String str = "abcdefghijklmnopqrtuvwxyz";
Я хотел бы вырезать строку длиной = 8:
Результат должен быть:
String strOut = "abcdefgh..."
Используйте подстроку и конкатенацию:
if(str.length() > 50)
strOut = str.substring(0,7) + "...";
StringUtils.abbreviate("abcdefg", 6);
Это даст вам следующий результат: abc...
Где 6 - необходимая длина, а "abcdefg" - это строка, которая должна быть сокращена.
Используйте подстроку
String strOut = "abcdefghijklmnopqrtuvwxyz"
String result = strOut.substring(0, 8) + "...";// count start in 0 and 8 is excluded
System.out.pritnln(result);
Примечание: подстрока (int first, int second) принимает два параметра. Первый является инклюзивным, а второй - исключительным.
Jakarta Commons StringUtils.abbreviate(). Если по какой-то причине вы не хотите использовать стороннюю библиотеку, по крайней мере скопируйте исходный код .
Одно большое преимущество этого по сравнению с другими ответами на сегодняшний день заключается в том, что он не будет метаться, если вы передадите нулевой символ.
Вы можете использовать String # substring()
if(str != null && str.length() > 8) {
return str.substring(0, 8) + "...";
} else {
return str;
}
Однако вы могли бы выполнять функцию, в которой вы передаете максимальное количество символов, которые могут быть отображены. Тогда эллипс будет разрезан только в том случае, если указанная ширина недостаточно для строки.
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
Вы можете использовать безопасную подстроку:
org.apache.commons.lang3.StringUtils.substring(str, 0, LENGTH);
Что-то вроде этого может быть:
String str = "abcdefghijklmnopqrtuvwxyz";
if (str.length() > 8)
str = str.substring(0, 8) + "...";
String strOut = str.substring(0, 8) + "...";