最近想做一个新闻发布系统有点问题想请教一下高手 简单的做法是你先判断整个字符串的长度,如果>某一个长度的话,你就用subString去截取,然后在加上详全文的超链接不就好了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我以前做过的是没有换行的标题,十个汉字加点。是用css控制的。你去google一下这方面的css吧。 这样吧,你试着在 serlet 或 action或...什么里面分好了然后在传过去,你控制他显示的长度,如果大于20 就截取前面 的20个后面则用 ....来代替, 好像 ArrayList里面有个 subList(int,int );的方法, 不知道可不可以行,你先试试看., 对了我还有个问题想问你.http://topic.csdn.net/u/20071111/13/109c8e46-74c8-480a-a85c-4f5d305b3244.html这里面是我刚刚碰到的问题,能不能帮我解决啊? subList()和subString()方法会不会有这样的问题呢?这是一条新闻!新闻的长度很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长对上面的用你的方法,注意上面有一个!占的是一个字节的长度,那么你取40个字节的长度的时候,最后一个汉字你只是取了一半。 当然不会了,substring截取的是字符,不是字节,不会产生这种现象的,还有一个要注意的是要把你的新闻内容中的\n换成<br>,为什么你要截取40个字节呢,看不出来这样做的必要,截取40个字符不好吗? <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.getCutStringpackage 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; } 建议写个标记库,在里面用subString。if(show.length()>=20){ show = show.substring(0,20)+"...";} 还有个问题向请教大家..如果一篇新闻的文章过于长...放到MYSQL数据库里的话最大的长度是30000个字..这样会不会影响读取效率我打算用XML来做..大家能否给电意见..这个是个日文网站..要不要考虑编码的问题/.谢谢.. .xml lazy-init="true" 我用oracle如果字符很长一般都放到clob字段里,呵呵。 java的web程序都要考虑编码问题的,一般使用utf-8。 与pentaho系统的整合问题,急... 高手请进 安全问题 ,请求高手们给点意见,谢谢啦! java代码中如何读取存放在server端的特定用户calendor信息? lucene 如何实现定时更新,不用框架 jms和jboss的问题 [提问]hibernate的问题 小妹有一个问题,哪位大哥愿意帮忙,小妹给分!!! weblogic的在jb里启动,war可以访问ejb,但在jb外部启动就出错。 还是j2ee的环境问题!帮帮忙 java关于访问修饰符号 Weblogic8.1更改Server的JDK时 无法正常起动~
你去google一下这方面的css吧。
你控制他显示的长度,如果大于20 就截取前面 的20个后面则用 ....来代替,
好像 ArrayList里面有个 subList(int,int );的方法,
不知道可不可以行,你先试试看.,
对了我还有个问题想问你.
http://topic.csdn.net/u/20071111/13/109c8e46-74c8-480a-a85c-4f5d305b3244.html
这里面是我刚刚碰到的问题,能不能帮我解决啊?
注意上面有一个!占的是一个字节的长度,那么你取40个字节的长度的时候,最后一个汉字你只是取了一半。
<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;
}
show = show.substring(0,20)+"...";
}
谢谢..