简单的做法是你先判断整个字符串的长度,如果>某一个长度的话,你就用subString去截取,然后在加上详全文的超链接不就好了?

解决方案 »

  1.   

    我以前做过的是没有换行的标题,十个汉字加点。是用css控制的。
    你去google一下这方面的css吧。
      

  2.   

    这样吧,你试着在 serlet 或 action或...什么里面分好了然后在传过去,
    你控制他显示的长度,如果大于20 就截取前面 的20个后面则用 ....来代替,
     好像 ArrayList里面有个 subList(int,int );的方法,
      不知道可不可以行,你先试试看.,
      对了我还有个问题想问你.
    http://topic.csdn.net/u/20071111/13/109c8e46-74c8-480a-a85c-4f5d305b3244.html
    这里面是我刚刚碰到的问题,能不能帮我解决啊?
      
      

  3.   

    subList()和subString()方法会不会有这样的问题呢?这是一条新闻!新闻的长度很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长对上面的用你的方法,
    注意上面有一个!占的是一个字节的长度,那么你取40个字节的长度的时候,最后一个汉字你只是取了一半。
      

  4.   

    当然不会了,substring截取的是字符,不是字节,不会产生这种现象的,还有一个要注意的是要把你的新闻内容中的\n换成<br>,为什么你要截取40个字节呢,看不出来这样做的必要,截取40个字符不好吗?
      

  5.   

    <logic:notEmpty name="expert" property="describe">
    <bean:define id="describe" name="expert" property="describe" type="java.lang.String">
      </bean:define>  
    <%=org.caexpo.common.util.Util.getCutString(describe,0,40,"...")%> 
    </logic:notEmpty> 
    ////Util.getCutString
    package org.caexpo.common.util;
     public final static String getCutString(String input, int start, int len,
                String tail) {
            String str = cutString(input, start, len);
            if (str.length() > 0 && str.length() < input.length()) {
                return str + tail;
            }
            return str;
        }    public final static String cutString(String input, int start, int len) {
            String rtn = null;
            int end = start + len;        if (input == null || input.length() < start || start < 0 || len == 0) {
                rtn = "";
            } else {
                if (input.length() <= end) {
                    return input;
                } else {
                    boolean flag = true;
                    char ch;
                    for (int i = start; i < end; i++) {
                        ch = input.charAt(i);
                        if (ch < 0 || ch > 127) {
                            i++;
                            if (i == end) {
                                flag = false;
                            }
                        } else {
                            flag = true;
                        }
                    }
                    if (flag) {
                        rtn = input.substring(start, end);
                    } else {
                        rtn = input.substring(start, end - 1);
                    }
                }
            }        return rtn;
        }
      

  6.   

    建议写个标记库,在里面用subString。if(show.length()>=20){
       show = show.substring(0,20)+"...";
    }
      

  7.   

    还有个问题向请教大家..如果一篇新闻的文章过于长...放到MYSQL数据库里的话最大的长度是30000个字..这样会不会影响读取效率我打算用XML来做..大家能否给电意见..这个是个日文网站..要不要考虑编码的问题/.
    谢谢..
      

  8.   

    .xml    lazy-init="true" 
      

  9.   

    我用oracle如果字符很长一般都放到clob字段里,呵呵。
      

  10.   

    java的web程序都要考虑编码问题的,一般使用utf-8。