offset函数如何在函数abbreviate(String str,int offset,int maxWidth)中工作,包org.apache.commons.lang.StringUtils

时间:2014-12-12 06:04:10

标签: java apache apache-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 个答案:

答案 0 :(得分:1)

从方法的JavaDoc:

  

允许您指定“左边缘”偏移。注意这个左边缘   不一定是结果中最左边的字符,   或者省略号后面的第一个字符,但它会出现   在结果的某个地方。

在您找到的方法代码中

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

您可以在此处阅读代码:http://kickjava.com/src/org/apache/commons/lang/StringUtils.java.htm

因此,您提供的两个示例都应返回"abcdefg..."。你确定你有"abcdefgh"吗?