在Java中附加字符串并添加“...”

时间:2012-12-09 06:18:03

标签: java android string

我找到了一个这样做的课程,看起来正是我需要的。

public static class StringUtil
{
  public static String limit(String value, int length)
  {
    StringBuilder buf = new StringBuilder(value);
    if (buf.length() > length)
    {
      buf.setLength(length);
      buf.append("…");
    }

    return buf.toString();
  }
}

我有一个名为review的字符串,我这样使用该类:

StringUtil.limit(review, 50);

似乎没有附加。

对于它的价值,它适用于Android应用。这是在PostExectute内的AsyncTask ListFragement方法中完成的。

我这样做了吗?

2 个答案:

答案 0 :(得分:1)

您发送的内容(评论)是否超过50个字符?请注意,如果结果长于限制,则该功能仅修改结果。

您似乎也不接受该方法的返回值。此方法不修改参数值(因为它不能),它返回一个带有新值的NEW String。

尝试

String newreview = StringUtil.limit( review, 50 );
System.out.println( newreview );

好的,你要求修改先进入下一个空间。我没有编译它,但它应该很接近。

public static String limit(String value, int length)
  {
    // note to Test this first, so you don't create a Buffer unnecessarily.
    String ret = value;
    if ( value.length() > length ) {
       StringBuilder buf = new StringBuilder(value);
       buf.setLength( length );
       int cur = length;
       while( cur < value.length() && value.charAt(cur) != ' ' ) {
           buf.append( value.charAt(cur) );
       }
       if ( cur == value.length() ) {
          ret = value;  // we copied the whole string, as it turns out.
       } else {
          buf.append( "..." );
          ret = buf.toString();
       }
    }
    return value;
  }

答案 1 :(得分:0)

public static String limit(String value, int length)
  {
    return value+"...";
  }