有个大侠推荐了这段代码,这段代码的问题在于,仅仅考虑了0-16之间有一个表情符号的问题没有考虑其他的.<%String s=Rk.getText();
    if(s.indexOf("<img")>14)
    {
         if(s.length()>16){out.print(s.substring(0,16)+"...");}else{out.print(s);}
     }
    else{
           int k,m,l,e,e1,num=0;
           String s1="";
           l=s.length();
           k=s.indexOf("<img");  //表情开始位置
           s1=s.substring(k,l);
           e=s1.indexOf(">");
           e1=k+e;  //表情结束位置
           //截取含表情的14位
           num=e1+(14-k);//实际截取的符号数
           String s2=s.substring(0,num);//最后截取的字符串。
           out.println(s2);
    }
%>

解决方案 »

  1.   

    简单过滤一下字符串  不就行了
    String text = Rk.getText();
    if (text.length() > 16) {
       text = Rk.getText().substring(0,16);
       if (text.indexof("<img") != -1) {
           int pos = Rk.getText().substring(0, Rk.getText().indexof(">");
           text = Rk.getText().substring(0,pos);
       }
    }
    在这基础上该该
      

  2.   

    有人回复过了
    回复的挺好啊
    这都不理解么
    只考虑了img   别的照此该该不就行了