2014-12-12 1 views
-1

В настоящее время я работаю с пакетом apache commons lang, классом StringUtils. У меня есть два аббревиатурных метода: abbreviate(String str,int maxwidth) и abbreviate(String str,int offset,int maxwidth) это абсолютно нормально с первым. Но когда вы приходите ко второму, это немного запутывает, и мне действительно нужно разъяснение. Я видел два случая функции abbreviate(String str,int offset,int maxwidth). те: -Как работает параметр offset в сокращении функции (String str, int offset, int maxWidth), в пакете org.apache.commons.lang.StringUtils

abbreviate("abcdefghijklmno",1,10) 

возвращает "АБВГДЕЖ ...", а второй:

abbreviate("abcdefghijklmno",4,10) 

также возвращает "АБВГДЕЖ ...".

Увидев это, я действительно в курсе, как работает параметр смещения?

+0

Просьба дать полное объяснение метода 'StringUtils.abbreviate (String str, intset, int maxwidth)'. –

+0

Более подробная информация о классе StringUtils и его методах теперь доступна на: http://examples.javacodegeeks.com/core-java/apache/commons/lang3/stringutils/org-apache-commons-lang3-stringutils-example/ –

ответ

1

Из JavaDoc метода:

позволяет определить «левый край» смещение. Обратите внимание, что этот левый край не обязательно будет самым левым символом в результате, или первым символом, следующим за эллипсами, но в результате появится .

В коде метода вы найдете

if (offset <= 4) { 
    return str.substring(0, maxWidth - 3) + "..."; 
} 

Вы можете прочитать код здесь: http://kickjava.com/src/org/apache/commons/lang/StringUtils.java.htm

Так что и примеры вы даете должны вернуть "abcdefg...". Вы уверены, что получили "abcdefgh"?

+0

извините, это были мои ошибки. Это будет «abcdefg ...». –

+0

Но ответ, который вы дали, уже известен мне. Мне нужно правильное разъяснение, как оно это делает. –

+0

Хорошо. ОК. Я получил его и спасибо ... –