-1

私は現在、Apache Commons lang パッケージ、StringUtils クラスを使用しています。2 つの省略方法があることがわかりました。最初の方法はまったく問題abbreviate(String str,int maxwidth)ありません。abbreviate(String str,int offset,int maxwidth)しかし、2 番目のものになると、少し混乱するので、明確にする必要があります。関数の 2 つのケースを見ましたabbreviate(String str,int offset,int maxwidth)。それらは:-

abbreviate("abcdefghijklmno",1,10)

「abcdefg...」を返し、2 番目:

abbreviate("abcdefghijklmno",4,10)

「abcdefg...」も返します。

これを見た後、私はオフセットパラメータがどのように正確に機能するのか本当に混乱しています??

4

1 に答える 1

1

メソッドの JavaDoc から:

「左端」のオフセットを指定できます。この左端は、必ずしも結果の左端の文字、または省略記号に続く最初の文字になるとは限りませんが、結果のどこかに表示されることに注意してください。

あなたが見つけたメソッドのコードで

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

ここでコードを読むことができます: http://kickjava.com/src/org/apache/commons/lang/StringUtils.java.htm

したがって、あなたが与える両方の例は を返すはず"abcdefg..."です。あなたは本当に持っています"abcdefgh"か?

于 2014-12-12T06:49:34.073 に答える