我找到了一个这样做的课程,看起来正是我需要的。
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
方法中完成的。
我这样做了吗?
答案 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+"...";
}