我目前正在使用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 ..."。
在看到这个之后我真的在讨论偏差参数究竟是如何工作的?
答案 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"
吗?