【问题标题】:How does the offset parameter works in the function abbreviate(String str,int offset,int maxWidth), in package org.apache.commons.lang.StringUtilsorg.apache.commons.lang.StringUtils 包中的函数 abbreviate(String str,int offset,int maxWidth) 中的 offset 参数如何工作
【发布时间】:2014-12-12 06:04:10
【问题描述】:

我目前正在使用 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...”。

看到这个后,我真的很困惑偏移参数究竟是如何工作的??

【问题讨论】:

标签: java apache apache-stringutils


【解决方案1】:

来自方法的JavaDoc:

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

在你找到的方法的代码中

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

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

所以你给出的两个例子都应该返回"abcdefg..."。你确定你有"abcdefgh" 吗?

【讨论】:

  • 对不起,这是我的错误。它将是“abcdefg ...”。
  • 但是我已经知道你给出的答案我需要一个适当的说明它究竟是如何做到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 2015-03-13
  • 2012-04-01
  • 2013-09-06
相关资源
最近更新 更多