Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static String abbreviateWithImportantEnding(String s, int maxLength) {
- // Abbreviates with default split char
- return abbreviateWithImportantEnding(s, maxLength, "|");
- }
- public static String abbreviateWithImportantEnding(String s, int maxLength, String split) {
- String result;
- int minAbbrevLength = 3; // Max length must be greater than 3 to abbreviate the start string with StringUtils
- if (s.contains(split) && maxLength > minAbbrevLength) {
- String start = s.substring(0, s.lastIndexOf(split)); // First part of the String
- String end = s.substring(s.lastIndexOf(split), s.length()); // End part of the String (important)
- int endLength = end.length();
- int maxStart = maxLength - endLength;
- if (start.length() > minAbbrevLength && maxStart > minAbbrevLength) {
- start = StringUtils.abbreviate(start, maxStart);
- } else {
- String ellipsis = "...";
- start = start.isEmpty() ? "" : ellipsis; // Only add ellipsis when the start is not empty
- if (end.length() > minAbbrevLength) {
- end = StringUtils.abbreviate(end, maxLength - ellipsis.length());
- }
- }
- result = start + end;
- } else {
- result = StringUtils.abbreviate(s, maxLength);
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement