Как работает параметр смещения в сокращенной функции (String str,int offset,int maxWidth), в пакете org.apache.commons.lang.StringUtils
В настоящее время я работаю с пакетом apache commons lang, классом StringUtils. Я обнаружил, что есть два способа сокращения: abbreviate(String str,int maxwidth)
а также abbreviate(String str,int offset,int maxwidth)
это абсолютно нормально с первым. Но когда дело доходит до второго, это немного сбивает с толку, и мне действительно нужны разъяснения. Я видел два случая abbreviate(String str,int offset,int maxwidth)
функция. это:
abbreviate("abcdefghijklmno",1,10)
возвращает "abcdefg...", а второй:
abbreviate("abcdefghijklmno",4,10)
также возвращает "abcdefg...".
Увидев это, я действительно в замешательстве, как именно работает параметр смещения??
1 ответ
Из JavaDoc метода:
позволяет указать смещение "левого края". Обратите внимание, что этот левый край не обязательно будет самым левым символом в результате или первым символом после эллипсов, но он появится где-то в результате.
В коде метода вы найдете
if (offset <= 4) {
return str.substring(0, maxWidth - 3) + "...";
}
Вы можете прочитать код здесь: http://kickjava.com/src/org/apache/commons/lang/StringUtils.java.htm
Так что оба примера, которые вы приводите, должны вернуться "abcdefg..."
, Вы уверены, что получили "abcdefgh"
?